gpt4 book ai didi

c# - Chrome 驱动程序在 FindElement 调用中抛出脚本结果错误

转载 作者:行者123 更新时间:2023-11-30 19:52:31 25 4
gpt4 key购买 nike

在昨天更新到 Chrome 浏览器版本 76.0.3809.87 并将我的 Chrome 驱动程序更新到版本 76.0.3809.68 之后,我们在使用 FindElementsFindElementByXPath< 时在一组网站上遇到奇怪的异常FindElement 方法。此问题未在更新前发生。抛出的异常是:

unknown error: script returns unexpected result.

目前我的项目在大约 500-600 个网站上实现了自动化,而我们仅在 3 个网站上遇到了这个问题(到目前为止):

  • https://billing.clarksvillegw.com/iwr/user/login.seam
  • https://mwsonline.nashville.gov/iwr/user/login.seam
  • https://webconnect.greensboro-nc.gov/iwr/user/login.seam

这些站点中的每一个都是由同一家公司构建的,因此代码具有可比性。使用 FindElementById 方法时,不会抛出此异常。您为方法提供的 XPath 似乎也无关紧要,每次都会抛出异常。我尝试使用全新的 selenium 安装创建一个新项目,结果是一样的。

我确定这与 Chrome 驱动程序更新有关,并且与我搜索但无法找到的 FindElements 的实际实现有关。我的猜测是它在后端使用了一些 javascript,这对网站来说效果不佳。

我没有尝试用其他驱动程序重现此问题。鉴于我们的一些项目限制,目前我们只能使用 Chrome 驱动程序。

搜索此问题没有结果,因为这是一个新问题。搜索异常消息只会产生有关错误使用 ExecuteScript 的信息,这(我认为)与我的问题无关。

有谁知道网站上出现这种情况的原因是什么?或者是否有已知的解决方法?在我提交此问题的帮助票之前,只想确保我没有做任何导致此问题的具体事情。

try
{
var driver = new ChromeDriver();
driver.Navigate().GoToUrl("https://billing.clarksvillegw.com/iwr/user/login.seam");
var success = driver.FindElementsById("login:usernamedec:username").Any();
var failure = driver.FindElementsByXPath("//*[@id='login:usernamedec:username']").Any();
}
catch (Exception)
{
throw;
}

当使用上面的代码时,success 被正确计算,但是当试图计算 failure 时,代码抛出异常。

最佳答案

在我们的测试自动化服务器上​​将 Chrome 浏览器和 ChromeDriver 升级到 76.0.3809.87 后,在 ruby​​ 上运行 Selenium-Webdriver 和 Appium 后,我遇到了完全相同的错误。

已经缩小了问题的原因并最终得到从下面的这个方法返回的错误 - 当调用带有行/列引用的表对象时,即。

`execute_script("arguments[0].scrollIntoView({block: 'center'});", self.sales_table_element[ref][@ref_col])`

Cheezy page-object

`def row_items
meth = strategy == :descendants ? :trs : :rows
@row_items ||= element.send(meth).map do |obj|
::PageObject::Elements::TableRow.new(obj)
end
end`

解决方法:将 Chrome 驱动程序降级为 75.0.3770.140帮我解决问题

从现在开始,这是一个临时解决方案。希望这个问题尽快得到永久解决!

更新:将 ChromeDriver 和 Chrome 浏览器升级到 77.0.3865.40 可修复此问题。 - 另见,https://chromedriver.storage.googleapis.com/77.0.3865.40/notes.txt

关于c# - Chrome 驱动程序在 FindElement 调用中抛出脚本结果错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57297186/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com