繁体   English   中英

Selenium 仅在无头模式下返回错误 C#

Selenium returning error only in headless mode C#

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

到目前为止,我所有的测试都运行良好,为了提高速度,我试图在无头模式下运行所有测试,但是其中一些测试失败了,其中一个有以下错误:

  OpenQA.Selenium.ElementNotInteractableException: element not interactable
      (Session info: headless chrome=87.0.4280.141)
  Rastreamento de Pilha: 
    RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse)
    RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary'2 parameters)
    RemoteWebElement.Execute(String commandToExecute, Dictionary'2 parameters)
    RemoteWebElement.Click()

返回该错误的行是

Driver.FindElement(By.CssSelector("#page_content_inner > div.uk-grid > div > div:nth-child(2) > div > div > div > ul > li:nth-child(2) > a")).Click();

其他有点击拦截:

      (Session info: headless chrome=87.0.4280.141)
  Rastreamento de Pilha: 
    RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse)
    RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary'2 parameters)
    RemoteWebElement.Execute(String commandToExecute, Dictionary'2 parameters)
    RemoteWebElement.Click()

产生错误的行是:

Driver.FindElement(By.Id("ClientesConvenio")).Click();

我真正的问题是:无头模式有什么限制吗? 有没有我应该使用无头模式的初学者知识? 为什么会这样?

1 个回复

正如@Nick Bailey 有时在他的评论中提到的那样......无头模式与完整浏览器的行为不同......由于:


解决方案

理想情况下,要在元素上Click() ,您必须为ElementToBeClickable()诱导WebDriverWait ,并且您可以使用以下任一定位器策略

  • 身份证

     new WebDriverWait(driver, TimeSpan.FromSeconds(10)).Until(ExpectedConditions.ElementToBeClickable(By.Id("ClientesConvenio"))).Click();
  • 选择器

     new WebDriverWait(driver, TimeSpan.FromSeconds(20)).Until(ExpectedConditions.ElementToBeClickable(By.CssSelector("#page_content_inner > div.uk-grid > div > div:nth-child(2) > div > div > div > ul > li:nth-child(2) > a"))).Click();

参考

您可以在以下位置找到一些相关的详细讨论:

1 C# Selenium - 无头浏览器

我开发了一个小应用程序(在 C# 中),它使用 Selenium 在网站上自动化测试。 一切都很顺利。 但是当我使用“无头”浏览器尝试相同的应用程序时,测试不起作用。 我对下面的代码有问题: OpenQA.Selenium.WebDriverException : '对远程 WebDriv ...

2 Selenium C#中的无头Firefox

我想无头运行Firefox。 Firefox不隐藏浏览器窗口或在虚拟桌面中打开它,而是通过使用“ -headless”标志来支持无头模式。 问题是我知道如何在Chrome中执行此操作,但在Firefox中却不行。 我的代码: 我的WinForm应用程序只有一个名为Sta ...

6 硒无头测试无头模式

我正在使用chromedriver运行硒测试。 但是现在,我需要在无头模式下执行相同的操作。 以下是无头模式运行良好的程序- 现在是问题所在–当我尝试读取具有其id或xpath的元素时,该程序以异常结尾。 错误是 找不到这样的元素。 如何纠正此错误。 我 ...

10 硒无法在无头模式下工作

因此,我有一个基本的Selenium程序,您可以在其中单击一个按钮,然后将“ Hello World”文本复制到剪贴板。 如果代码不在无头模式下,则该代码有效,但我希望它在无头模式下工作。 这是启用无头模式的代码: 这是HTML代码: ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM