输入元素| angularjs、chrome 91、量角器上不存在值属性

zdwk9cvp  于 2021-09-29  发布在  Java
关注(0)|答案(1)|浏览(311)

将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

vyswwuz2

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 update --gecko=false --versions.chrome 90.0.4430.24

注意:有时您有全局、项目本地和特定于量角器的webdriver manager安装。我发出的命令将全局安装chromedriver。为了在本地安装,您需要找到webdriver管理器的路径并运行如下命令

node ./node_modules/protractor/node_modules/webdriver-manager update --gecko=false --versions.chrome 90.0.4430.24

有些人可能需要在中运行命令 sudo 模式记住这一点
而不是 elem.getAttribute('value') 尽力配合 browser.executeScript('return arguments[0].value', elem); 多个用户声称它对他们有效
此外,请阅读此答案https://stackoverflow.com/a/67888592/9150146 这就提出了更棘手的解决方案

相关问题