当前位置: 首页 > 知识库问答 >
问题:

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

邓韬
2023-03-14

到目前为止,我所有的测试都运行正常,为了提高速度,我尝试在无头模式下运行所有测试,但其中一个测试失败,其中一个错误如下:

  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个答案

巴博耘
2023-03-14

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

  • 默认视口

理想情况下,单击()上的元素,你必须诱导WebDriver等待ElementToBeClickable(),你可以使用以下定位器策略:

>

  • 身份证:

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

    CSS选择器:

    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();
    

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

    • 在无头模式下无法最大化Chrome窗口

  •  类似资料:
    • 我用的是chrome第77版,测试一些下载。但我不明白为什么它不让在无头模式下下载文件(只发生在无头模式下)。这是我正在使用的代码。 _chromeOptions。AddUserProfilePreference(" download . default _ Directory " ,@ "目录文件夹");_chromeOptions。adduser profile preference(" in

    • 问题内容: 我正在使用Selenium Webdriver,Ruby 32位1.9.3,Chromedriver v2.9.248315,Chrome 38.0.2125.111 m和Jenkins 1.588的本地实例 Gems: cucumber (1.3.17),selenium-webdriver (2.43.0), watir-webdriver (0.6.11)(如果您认为有必要,可以

    • 问题内容: 当我抓取包含使用无头选项产品的页面时,我得到不同的结果。 对于同一个问题,一次我得到未排序的结果,而另一次我得到正确的排序顺序。 Selenium firefox浏览器: 根据这篇文章: “ firefox使用无头选项时不会发送不同的头”。 如何使用无头选项从抓取中获得恒定的结果? 更新: 事实证明,广告弹出窗口隐藏了价格排序菜单。通过设置DebanjanB发布的恒定窗口大小,解决了问

    • 当我浏览包含使用headless选项的产品的页面时,我会得到不同的结果 对于同一个问题,一次我得到的结果没有排序,另一次得到的结果排序正确。 Selenium firefox浏览器: 根据这篇帖子: “firefox在使用headless选项时不会发送不同的标题”。 如何使用无头选项从刮擦中获得恒定的结果? 更新: 原来,广告弹出窗口隐藏了价格排序菜单。通过设置DebanjanB发布的恒定窗口大小

    • 问题内容: 我想无头运行Firefox。 Firefox不隐藏浏览器窗口或在虚拟桌面中打开它,而是通过使用“ -headless”标志来支持无头模式。 问题是我知道如何在Chrome中执行此操作,但在Firefox中却不行。 我的代码: 我的WinForm应用程序只有一个名为StartBtn的按钮。单击该按钮后,Firefox应该无头运行,但会在正常窗口中打开。 更新 我将firefox更新为56

    • 我做我的代码在CromeDrive在'正常'模式和工作正常。当我切换到无头模式时,它不会下载文件。我已经尝试了我在互联网上找到的代码,但是不起作用。 有人知道如何解决这个问题吗? PS:我不一定要用Chomedrive。如果它在另一个驱动器中工作,对我来说没问题。