Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
需要等待Selenium ChomeDriver/Chome才能正确单击元素(ChromeDriver v 77和78,Chome v 78)_Selenium_Google Chrome_Selenium Webdriver_Selenium Chromedriver_Webdriverwait - Fatal编程技术网

需要等待Selenium ChomeDriver/Chome才能正确单击元素(ChromeDriver v 77和78,Chome v 78)

需要等待Selenium ChomeDriver/Chome才能正确单击元素(ChromeDriver v 77和78,Chome v 78),selenium,google-chrome,selenium-webdriver,selenium-chromedriver,webdriverwait,Selenium,Google Chrome,Selenium Webdriver,Selenium Chromedriver,Webdriverwait,正如标题中提到的,自从chrome更新到v78之后,出现了以下问题。在ChromeV78之前,所有的测试都进行得很好 这种行为是高度不确定的,所以请容忍我。 也就是说,有时候它只是突然发生的,没有任何变化。测试中的大多数点击都正常工作。只是有些会反复失败(大部分时间) 我们将selenium与chrome 78的最新驱动程序一起使用。问题首先出现在运行Chrome78的驱动程序版本77上。 规范流测试和适配器代码都没有任何改变,但在Chrome更新之后,基本上所有测试都失败了 在每次单击之前执行

正如标题中提到的,自从chrome更新到v78之后,出现了以下问题。在ChromeV78之前,所有的测试都进行得很好

这种行为是高度不确定的,所以请容忍我。 也就是说,有时候它只是突然发生的,没有任何变化。测试中的大多数点击都正常工作。只是有些会反复失败(大部分时间)

我们将selenium与chrome 78的最新驱动程序一起使用。问题首先出现在运行Chrome78的驱动程序版本77上。 规范流测试和适配器代码都没有任何改变,但在Chrome更新之后,基本上所有测试都失败了

在每次单击之前执行Thread.Wait(1000)似乎是避免问题的最可靠的方法,并根据请求单击元素

当我不等待时,驱动程序运行“单击”,包括下面列出的步骤,而没有实际单击或抛出任何错误

  • 元素的查找:
    newwebdriverwait(this.webDriver,this.WaitTimeout).Until(SeleniumExtras.WaitHelpers.ExpectedConditions.ElementIsVisible(by))
  • 正在等待可单击的元素:
    wait.Until(SeleniumExtras.WaitHelpers.ExpectedConditions.ElementToBeClickable(by))
  • 向元素滚动:
    ((IJavaScriptExecutor)this.webDriver).ExecuteScript(“window.scrollTo(0),+(object)(e.Location.Y-250)+”)
  • 并对元素执行单击和释放操作:
    操作。单击(元素)。执行()
我还尝试了其他几种鼠标点击方式,包括评论中的一种

由于这个过程只是完成了所有这些,没有实际抛出任何类型的错误或警告,因此我无法检查单击是否确实发生(除了检查当前URL,这将是测试中的一个噩梦)

因此,网站没有更新,并保留在源页面上,测试将失败,因为下一个测试没有在预期页面上运行

现在的问题是: 有什么我可以查询或等待,看看驱动程序或chrome是否真的可以点击该元素(真的),或者验证它是否真的被点击了

原始发行报告:

您是否尝试过常规单击<代码>IWebElement元素=等待.直到(…);元素。单击()
?顺便说一句,在
Click()
之后不需要调用
Release()
。我们在这个过程中尝试了各种各样的点击。这也是我们发现ActionChain方法的方式。我们以前没用过。将删除释放调用。谢谢。