首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >异常:OpenQA.Selenium.WebDriverException:

异常:OpenQA.Selenium.WebDriverException:
EN

Stack Overflow用户
提问于 2019-02-20 15:31:20
回答 1查看 583关注 0票数 0

当我使用以下配置Protractor.net和c# Nunit运行测试时抛出以下异常

代码语言:javascript
复制
 1. "NUnit" version="3.11.0"
 2. "NUnit3TestAdapter" version="3.12.0"
 3. "Protractor" version="0.12.0"
 4. "Selenium.WebDriver" version="3.141.0"
 5. "Selenium.WebDriver.ChromeDriver" version="2.36.0"
 6. Chromebrowser Version :  65.0.3325.162

angular.version {full:"1.6.9",大调: 1,小调: 6,点: 9,codeName:“烈火蛇蛇”}

下面是我用来测试的示例代码,它在NgBy.Repeater上失败了

代码语言:javascript
复制
private IWebDriver driver;
driver = new ChromeDriver();
driver.Manage().Timeouts().AsynchronousJavaScript = TimeSpan.FromSeconds(60);
public void uitest()
{
try {
      ngDriver.Navigate().GoToUrl("");           
      ngDriver.FindElement(By.Id("userNameInput")).SendKeys("");            
      ngDriver.FindElement(By.Id("passwordInput")).SendKeys("");
      ngDriver.FindElement(By.Id("submitButton")).Click();
      string text=ngDriver.FindElements(NgBy.Repeater(""))[0].Text;
      Assert.AreEqual("Dashboard", text);
}catch(Exception e)
{
Console.WriteLine("Exception :"+e.ToString());
Assert.True(false);
}
driver.Quit();
}

例外:

代码语言:javascript
复制
OpenQA.Selenium.WebDriverException: The HTTP request to the remote WebDriver server for URL http://localhost:61649/session/f5f68e3d39a9e0e5adee0c5d76acd9d1/execute_async timed out after 60 seconds. ---> System.Net.WebException: The operation has timed out
   at System.Net.HttpWebRequest.GetResponse()
   at OpenQA.Selenium.Remote.HttpCommandExecutor.MakeHttpRequest(HttpRequestInfo requestInfo)
   --- End of inner exception stack trace ---
   at OpenQA.Selenium.Remote.HttpCommandExecutor.MakeHttpRequest(HttpRequestInfo requestInfo)
   at OpenQA.Selenium.Remote.HttpCommandExecutor.Execute(Command commandToExecute)
   at OpenQA.Selenium.Remote.DriverServiceCommandExecutor.Execute(Command commandToExecute)
   at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary`2 parameters)
   at OpenQA.Selenium.Remote.RemoteWebDriver.ExecuteScriptCommand(String script, String commandName, Object[] args)
   at OpenQA.Selenium.Remote.RemoteWebDriver.ExecuteAsyncScript(String script, Object[] args)
   at Protractor.NgWebDriver.WaitForAngular() in c:\Users\Bruno\Projets\GitHub\bbaia\protractor-net\src\Protractor\NgWebDriver.cs:line 359
   at Protractor.NgWebDriver.FindElements(By by) in c:\Users\Bruno\Projets\GitHub\bbaia\protractor-net\src\Protractor\NgWebDriver.cs:line 299
EN

回答 1

Stack Overflow用户

发布于 2019-07-29 13:54:51

您需要将IgnoreSynchronization设置为true,并为angular页面调用WaitForAngular()方法

代码语言:javascript
复制
ngDriver.IgnoreSynchronization = true;
ngDriver.WaitForAngular();

将其添加到SetUp()方法中,或尝试在遇到问题的地方使用at行

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54780984

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档