【发布时间】:2021-01-25 19:51:08
【问题描述】:
到目前为止,我所有的测试都运行良好,为了提高速度,我试图在无头模式下运行所有测试,但是其中一些测试失败了,其中一个出现以下错误:
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();
我真正的问题是:无头模式有什么限制吗?有没有我应该使用无头模式的初学者知识?为什么会这样?
【问题讨论】:
-
不是解决方案,但无头模式与完整浏览器的行为不同的问题很常见。一般来说,我们使用的解决方案是简化选择器,理想情况下是通过更新底层应用程序来公开易于定位的“数据”属性。复杂的 CSS 选择器非常脆弱,需要随着应用程序的变化而不断更新。使用特定于测试的目标将导致更健壮的测试。
标签: c# selenium selenium-webdriver selenium-chromedriver google-chrome-headless