微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

element.getAttribute("value") 从输入元素返回 null

如何解决element.getAttribute("value") 从输入元素返回 null

我正在使用量角器测试 UI

我正在做以下事情

const input_field = element(by.name(name_here));
input_field.getAttribute('value').then(val=>{
    console.log(val
});

这总是打印空值,这很奇怪,因为当我在浏览器的控制台中这样做时:

document.getElementsByName(name_here)[0].value it prints the correct value.

解决方法

作为现在和直到此错误得到修复的解决方法,您可以使用

browser.executeScript('return arguments[0].value',inputElement);

其中 inputElement 的类型为 ElementFinder

,

临时解决方案

我找到了一种仅适用于 mac 上的 chrome 91.0.4472.114 的解决方法

这里描述的问题实际上是 chromedriver https://bugs.chromium.org/p/chromium/issues/detail?id=1205107 中的一个错误,所以它不仅仅是量角器的问题

在开发过程中,您可以使用 chromedriver 90 版。奇迹般有效。可用的最新版本在这里https://chromedriver.storage.googleapis.com/LATEST_RELEASE_90.0.4430

您可以通过运行此命令来降级 chromedriver

webdriver-manager update --gecko=false --versions.chrome 90.0.4430.24

请注意,有时您有 webdriver-manager 的全局、项目本地和量角器特定安装。我给出的命令将全局安装 chromedriver。为了在本地安装,您需要找到 webdriver-manager 的路径并像这样运行命令

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

有些人可能需要在 sudo 模式下运行命令。记住它

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。