无法从超时获取自动化扩展:超时从渲染器接收消息 [英] Cannot get automation extension from timeout: Timed out receiving message from renderer

查看:368
本文介绍了无法从超时获取自动化扩展:超时从渲染器接收消息的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

使用Selenium Webdriver(C#),我不时遇到下一个错误:

Using Selenium Webdriver (C#) I'm getting the next error from time to time:

System.InvalidOperationException:未知错误:无法从超时获取自动化扩展:超时从渲染器接收消息:-3.959(会话信息:chrome = 37.0.2062.120)(驱动程序信息:chromedriver = 2.10.267521,platform = Windows NT 6.2 x86_64)

System.InvalidOperationException : unknown error: cannot get automation extension from timeout: Timed out receiving message from renderer: -3.959 (Session info: chrome=37.0.2062.120) (Driver info: chromedriver=2.10.267521,platform=Windows NT 6.2 x86_64)

此错误的出现方式:

OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse)在c:\ Projects \ webdriver \ dotnet \ src \ webdriver \ Remote \ RemoteWebDriver.cs:line 1048在OpenQA.Selenium.Remote.RemoteWebDriver.Execute c:\ Projects \ webdriver \ dotnet \ src \ webdriver \ Remote \ RemoteWebDriver.cs:在AutomatedTests.DriverCover..ctor(IWebDriver驱动程序)处的第865行的driverCommandToExecute,Dictionary的两个参数)

OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse) in c:\Projects\webdriver\dotnet\src\webdriver\Remote\RemoteWebDriver.cs:line 1048 at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary`2 parameters) in c:\Projects\webdriver\dotnet\src\webdriver\Remote\RemoteWebDriver.cs:line 865 at AutomatedTests.DriverCover..ctor(IWebDriver driver)

所以,这发生在下一段代码中:

So, it's happening in the next piece of code:

 public class DriverCover
 {
        public DriverCover(IWebDriver driver)
        {
            _driver = driver;

            _driver.Manage().Window.Maximize(); //There is my mistake
        }

        private readonly IWebDriver _driver;
 }

我将此类用作PageObject类的基类,在其中我使用PageFactory初始化网页元素.

I use this class as a base class of PageObject classes where I use PageFactory to initialize elements of web pages.

我有chromedriver v.2.10 和Google Chrome v.37.0.2062.120 m

I have chromedriver v.2.10 and Google Chrome v. 37.0.2062.120 m

此外:在同一行中,我还遇到另一个错误:

In addition: at the same line I got another error:

OpenQA.Selenium.WebDriverException:60秒后,对URL http://localhost:62407/session/021e05cd4c89abedb2abc77342b3bd7c/window/current/maximize的远程WebDriver服务器的HTTP请求超时. ----> 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:line 73在OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute) ,Dictionary`2个参数)位于c:\ Projects \ webdriver \ dotnet \ src \ webdriver \ Remote \ RemoteWebDriver.cs:AutomatedTests.DriverCover..ctor(IWebDriver驱动程序)的852行

OpenQA.Selenium.WebDriverException : The HTTP request to the remote WebDriver server for URL http://localhost:62407/session/021e05cd4c89abedb2abc77342b3bd7c/window/current/maximize timed out after 60 seconds. ----> System.Net.WebException : The operation has timed outat OpenQA.Selenium.Remote.HttpCommandExecutor.CreateResponse(WebRequest request) in c:\Projects\webdriver\dotnet\src\webdriver\Remote\HttpCommandExecutor.cs:line 152 at OpenQA.Selenium.Remote.DriverServiceCommandExecutor.Execute(Command commandToExecute) in c:\Projects\webdriver\dotnet\src\webdriver\Remote\DriverServiceCommandExecutor.cs:line 73 at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary`2 parameters) in c:\Projects\webdriver\dotnet\src\webdriver\Remote\RemoteWebDriver.cs:line 852 at AutomatedTests.DriverCover..ctor(IWebDriver driver)

推荐答案

我们看到了与Chrome类似的问题,问题归结为我们在运行测试之前最大化浏览器的方式.

We were seeing something similar with Chrome and the issue came down to the way we were maximizing the browser before running the tests.

我们从此切换:

Driver.Manage().Window.Maximize();

为此(仅适用于Chrome):

To this (for Chrome only):

if (typeof(TWebDriver) == typeof(ChromeDriver))
{
    var options = new ChromeOptions();
    options.AddArgument("start-maximized");

    driver = new ChromeDriver(driverPath, options);
}

这篇关于无法从超时获取自动化扩展:超时从渲染器接收消息的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆