将chrome驱动程序更新为chromedriver 91.0.4472.19后
这个 value
属性已从数据库中消失 input
元素。量角器无法访问value属性。
let x = await xDiv.getEl("#xInput").getAttribute('value');
// x = null
使用chrome开发工具,我也无法看到 value
标记中任何输入元素的属性。
使用angularjs 1.5.8和量角器/selenium 3.141.59
将chrome驱动程序更新为chromedriver 91.0.4472.19后
这个 value
属性已从数据库中消失 input
元素。量角器无法访问value属性。
let x = await xDiv.getEl("#xInput").getAttribute('value');
// x = null
使用chrome开发工具,我也无法看到 value
标记中任何输入元素的属性。
使用angularjs 1.5.8和量角器/selenium 3.141.59
1条答案
按热度按时间vyswwuz21#
您描述的问题实际上是chromedriver中的一个bughttps://bugs.chromium.org/p/chromium/issues/detail?id=1205107. 这是因为与w3c合规性相关的chrome浏览器发生了变化
正如您所看到的,计划是修复这个bug,但它仍在进行中。
同时,我向您推荐两种变通方法:
您可以使用chromedriver版本90。最新版本在此处提供https://chromedriver.storage.googleapis.com/latest_release_90.0.4430
我知道在正常情况下,这会引发不兼容错误,但chromedriver 90与Chrome91配合使用。
您可以通过运行此命令降级chromedriver
注意:有时您有全局、项目本地和特定于量角器的webdriver manager安装。我发出的命令将全局安装chromedriver。为了在本地安装,您需要找到webdriver管理器的路径并运行如下命令
有些人可能需要在中运行命令
sudo
模式记住这一点而不是
elem.getAttribute('value')
尽力配合browser.executeScript('return arguments[0].value', elem);
多个用户声称它对他们有效此外,请阅读此答案https://stackoverflow.com/a/67888592/9150146 这就提出了更棘手的解决方案