0

我有一个在 Selenium 2.45.0 中创建的回归包,我最近升级到了 Selenium(selenium-java 3.4.0 和 selenium server 3.7.1)。目前我的系统上有 Firefox ESR v52.3.0。升级到 selenium 3.4.0 window.maximize() 失败并出现以下错误 -

org.openqa.selenium.WebDriverException: Failed to find width field

如果我尝试设置尺寸

driver.manage().window().setSize(new Dimension(1920, 1080));

它给了我以下错误-

org.openqa.selenium.WebDriverException: setWindowRect

我已经设置了 geckodriver 的路径,并使用以下选项设置了 FirefoxProfile,

profile.setPreference("browser.download.folderList", 2);
    profile.setPreference("browser.download.manager.showWhenStarting", false);
    profile.setPreference("browser.download.dir", System.getProperty("user.dir") + "\\downloads");
    profile.setPreference("browser.helperApps.neverAsk.openFile","text/csv,application/x-msexcel,application/excel,application/x-excel,"
            + "application/vnd.ms-excel,image/png,image/jpeg,text/html,text/plain,application/msword,application/xml");
    profile.setPreference("browser.helperApps.neverAsk.saveToDisk","text/csv,application/x-msexcel,"
            + "application/excel,application/x-excel,application/vnd.ms-excel,image/png,image/jpeg,text/html,text/plain,application/msword,application/xml");
    profile.setPreference("browser.helperApps.alwaysAsk.force", false);
    profile.setPreference("browser.download.manager.alertOnEXEOpen", false);
    profile.setPreference("browser.download.manager.focusWhenStarting", false);
    profile.setPreference("browser.download.manager.useWindow", false);
    profile.setPreference("browser.download.manager.showAlertOnComplete", false);
    profile.setPreference("browser.download.manager.closeWhenDone", false);
    profile.setPreference("browser.tabs.remote.autostart", false);
    profile.setPreference("browser.tabs.remote.autostart.1", false);
    profile.setPreference("browser.tabs.remote.autostart.2", false);
    profile.setPreference("browser.tabs.remote.force-enable", "false");

请让我知道如何在 Firefox 浏览器 v52.3.0 上最大化窗口。

非常感谢

4

1 回答 1

0

在使用Selenium 3.x时,释放最大化浏览器窗口的代码行是:

driver.manage().window().maximize();

正如您提到的使用Firefox ESR v52.3.0可能Firefox 浏览器变体确实会在浏览器窗口最大化的情况下进行初始化。driver.manage().window().maximize();因此,调用或应该没有额外的要求driver.manage().window().setSize(new Dimension(1920, 1080));

仍然兼容OSS的Web 浏览器,例如ChromePhantomJS等,其中一些仍然没有打开被最大化。一些Chromium问题建议使用ChromeOptions类来最大化Web 浏览器作为替代方案,如下所示:

ChromeOptions options = new ChromeOptions();
options.addArguments("test-type");
options.addArguments("start-maximized");
options.addArguments("disable-infobars");
options.addArguments("--disable-extensions"); 
WebDriver driver = new ChromeDriver(options);

在这里你可以找到一些关于相同的讨论:

于 2018-02-24T15:11:28.707 回答