Java - Selenium 2:Chromedriver - 异常调用driver.manage()。window()。setPosition()

时间:2017-05-17 05:00:21

标签: java windows selenium selenium-webdriver selenium-chromedriver

我正在尝试用chromedriver进行硒测试。要在启动时隐藏chrome窗口,我使用以下代码。参考https://sqa.stackexchange.com/a/15489

driver.manage().window().setPosition(new Point(-2000, 0)); 

上面的代码在我的本地Windows 7操作系统和另一台运行Windows 8的远程计算机上工作正常,但在运行Windows 10的一台远程计算机中出现以下异常时失败。

[66.916][SEVERE]: Timed out receiving message from renderer: -11.117
    Exception in Main org.openqa.selenium.WebDriverException: unknown error: cannot get automation extension 
     from timeout

对于这个例外,我在网上找到的每个答案都只涉及将chromedriver和chrome更新到我已经完成的最新版本。

我在所有操作系统中使用相同的版本: 镀铬驱动程序:2.29.461591 chrome版本:58.0.3029.110 Selenium版本:2.33.0

OS Info失败的地方: Windows 10 Home 64位

非常感谢任何帮助,谢谢。

2 个答案:

答案 0 :(得分:1)

只是预感 - 由于您的操作系统是64位,因此您的Chrome浏览器也可能是64位。您可能还安装了32位chrome并且webdriver正在启动可能未更新的32位? (再次只是预感)。

首先检查您是否有32位或64位。您应该可以点击Chrome帮助>来区分。关于Google Chrome。

与下面显示的不同,32位不会有#34;(64位)"版本号旁边的文字。 64-Bit Chrome

来源:howtogeek.com

现在将版本与webdriver启动的版本进行比较,然后才能收到错误。

如果不同,请尝试通过执行以下操作设置二进制文件:

ChromeOptions options = new ChromeOptions();
options.setBinary("path/to/latest/64-bit/chrome/Chrome.exe");

System.setProperty(ChromeDriverService.CHROME_DRIVER_EXE_PROPERTY, "path/to/chrome/driver/chromedriver");
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
capabilities.setCapability(ChromeOptions.CAPABILITY, options);

WebDriver driver = new ChromeDriver(capabilities);

只是预感,但我希望它有所帮助。

PS。我用我的机器Win7 64位尝试了同样的事情并且它正在工作。

答案 1 :(得分:0)

尝试更改您的机器分辨率,以便移动的镀铬窗口在远程机器中不会完全消失。