使用 Selenium Webdriver (C#) 我时不时会收到下一个错误:
System.InvalidOperationException:未知错误:无法从超时获取自动化扩展:从渲染器接收消息超时:-3.959(会话信息:chrome = 37.0.2062.120)(驱动程序信息:chromedriver = 2.10.267521,platform = Windows NT 6.2 x86_64)
这个错误的出现方式:
c:\Projects\webdriver\dotnet\src\webdriver\Remote\RemoteWebDriver.cs 中的 OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse):OpenQA.Selenium.Remote.RemoteWebDriver.Execute 的第 1048 行(String driverCommandToExecute,字典) `2 个参数)位于 c:\Projects\webdriver\dotnet\src\webdriver\Remote\RemoteWebDriver.cs: AutomatedTests.DriverCover..ctor 处的第 865 行(IWebDriver 驱动程序)
所以,它发生在下一段代码中:
public class DriverCover
{
public DriverCover(IWebDriver driver)
{
_driver = driver;
_driver.Manage().Window.Maximize(); //There is my mistake
}
private readonly IWebDriver _driver;
}
我使用此类作为 PageObject 类的基类,在其中使用 PageFactory 来初始化网页元素。
我有 chromedriver v.2.10
和 Google Chrome v.37.0.2062.120 m
另外:在同一行我收到另一个错误:
OpenQA.Selenium.WebDriverException :向远程 WebDriver 服务器发送 URL 请求http://localhost:62407/session/021e05cd4c89abedb2abc77342b3bd7c/window/current/maximize
60 秒后超时。 ----> System.Net.WebException :操作在 c:\Projects\webdriver\dotnet\src\webdriver\Remote\HttpCommandExecutor.cs:line 中的 OpenQA.Selenium.Remote.HttpCommandExecutor.CreateResponse(WebRequest request) 超时152 在 OpenQA.Selenium.Remote.DriverServiceCommandExecutor.Execute(Command commandToExecute) 在 c:\Projects\webdriver\dotnet\src\webdriver\Remote\DriverServiceCommandExecutor.cs:第 73 行在 OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute ,Dictionary`2参数)在c:\ Projects \ webdriver \ dotnet \ src \ webdriver \ Remote \ RemoteWebDriver.cs中:AutomatedTests.DriverCover ..ctor(IWebDriver驱动程序)第852行
我们在 Chrome 中看到了类似的情况,问题归结为我们在运行测试之前最大化浏览器的方式。
我们从此切换:
Driver.Manage().Window.Maximize();
为此(仅适用于 Chrome):
if (typeof(TWebDriver) == typeof(ChromeDriver))
{
var options = new ChromeOptions();
options.AddArgument("start-maximized");
driver = new ChromeDriver(driverPath, options);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)