element.getAttribute('value') returns 量角器中为空
element.getAttribute('value') returns null in Protractor
element.getAttribute('value') returns 在量角器中为空,尽管在源代码中存在值详细信息。
下面是我的代码,
console.log(等待this.textArea.getAttribute('value'));
Source code image
我阅读了有关同一问题的其他帖子,但这些帖子已经过时,没有适合我的解决方案。我还尝试使用 browser.actions().click(element).sendKeys('input').perform(); 输入输入考虑到它可能是 sendKeys() API 问题,但仍然没有运气。
并且相同的代码“element.getAttribute('value')”在 2021 年 6 月 1 日之前一直运行良好,但突然返回空值,不确定是否有任何代码更改或编译器版本需要有更新吗?
从今天开始,它正在发生在我们身上。 element.getAttribute
适用于属性“type”,但不适用于“value”和其他一些属性,如“outerHTML”等。我们的代码也是稳定的代码(2021 年 2 月左右冻结)。
我们可以通过在 chrome 选项中添加 w3c:false
来解决这个问题。
这不是问题的答案,但发现了最新 Chrome 版本 91.0.4472.77
的 element.getAttribute('value')
方法存在问题的根本原因。它还给出了完整日历 angular 组件 https://github.com/fullcalendar/fullcalendar/issues/6343
的问题
我能够 运行 我在 Microsoft Edge 版本 91.0.864.37
浏览器上的测试
此修复的预计到达时间是多少?顺便说一下,以下解决方案有效:
第 1 步:卸载当前 chrome 版本 91.0.4472.101
第 2 步:下载 chrome 版本 90.0.4430.72 并安装它
Step2a: Download chrome from here >> https://www.filepuma.com/download/google_chrome_64bit_90.0.4430.72-28425/
Step2b: Disable chrome auto update by delete the file (GoogleUpdate.exe) from this path: C:\Program Files (x86)\Google\Update
Step3:删除当前所有chrome驱动包
一种。从此路径删除所有 chrome 个文件:C:\Users\admin\AppData\Roaming\npm\node_modules\protractor\node_modules\webdriver-manager\selenium
第 4 步:在 cmd
中通过 运行 命令降级 chrome 驱动程序包
webdriver-manager 更新 --versions.chrome 90.0.4430.24
已解决
我在 mac
上找到了一个适用于 chrome 91.0.4472.114
的临时解决方法
这里描述的问题实际上是 chrome 驱动程序 https://bugs.chromium.org/p/chromium/issues/detail?id=1205107 中的一个错误,所以它不仅仅是 Protractor 问题
正在处理中,您可以使用chrome驱动程序版本 90。奇迹般有效。最新版本在这里 https://chromedriver.storage.googleapis.com/LATEST_RELEASE_90.0.4430
您可以通过运行执行此命令
来降级chrome驱动程序
webdriver-manager update --gecko=false --versions.chrome 90.0.4430.24
请注意,有时您会在全局、项目本地和 Protractor 特定安装 webdriver-manager。我给出的命令将全局安装 chrome 驱动程序。为了在本地安装,您需要找到您的 webdriver-manager 的路径和 运行 这样的命令
node ./node_modules/protractor/node_modules/webdriver-manager update --gecko=false --versions.chrome 90.0.4430.24
有些人可能需要在 sudo
模式下执行 运行 命令。记在心里
我遵循了另一个解决方法。
转到 google chrome 并打开开发者工具
使用 CSS 识别元素并在您的开发者控制台中获取元素的值,如下所示。
$("input[data-bind *='selectedParentKpi']")[0].value
3.Get 来自量角器的数据,使用 javascript
browser.executeScript("return $(\"input[data-bind *='selectedParentKpi']\")[0].value").then(function (data1){
cb();
})
您不需要降级。有些答案很接近,但您可以像这样传入一个量角器元素。
const value = await browser.executeScript("return arguments[0].value", myElement);
element.getAttribute('value') returns 在量角器中为空,尽管在源代码中存在值详细信息。
下面是我的代码,
console.log(等待this.textArea.getAttribute('value'));
Source code image
我阅读了有关同一问题的其他帖子,但这些帖子已经过时,没有适合我的解决方案。我还尝试使用 browser.actions().click(element).sendKeys('input').perform(); 输入输入考虑到它可能是 sendKeys() API 问题,但仍然没有运气。
并且相同的代码“element.getAttribute('value')”在 2021 年 6 月 1 日之前一直运行良好,但突然返回空值,不确定是否有任何代码更改或编译器版本需要有更新吗?
从今天开始,它正在发生在我们身上。 element.getAttribute
适用于属性“type”,但不适用于“value”和其他一些属性,如“outerHTML”等。我们的代码也是稳定的代码(2021 年 2 月左右冻结)。
我们可以通过在 chrome 选项中添加 w3c:false
来解决这个问题。
这不是问题的答案,但发现了最新 Chrome 版本 91.0.4472.77
的 element.getAttribute('value')
方法存在问题的根本原因。它还给出了完整日历 angular 组件 https://github.com/fullcalendar/fullcalendar/issues/6343
我能够 运行 我在 Microsoft Edge 版本 91.0.864.37
浏览器上的测试
此修复的预计到达时间是多少?顺便说一下,以下解决方案有效:
第 1 步:卸载当前 chrome 版本 91.0.4472.101
第 2 步:下载 chrome 版本 90.0.4430.72 并安装它
Step2a: Download chrome from here >> https://www.filepuma.com/download/google_chrome_64bit_90.0.4430.72-28425/
Step2b: Disable chrome auto update by delete the file (GoogleUpdate.exe) from this path: C:\Program Files (x86)\Google\Update
Step3:删除当前所有chrome驱动包 一种。从此路径删除所有 chrome 个文件:C:\Users\admin\AppData\Roaming\npm\node_modules\protractor\node_modules\webdriver-manager\selenium
第 4 步:在 cmd
中通过 运行 命令降级 chrome 驱动程序包webdriver-manager 更新 --versions.chrome 90.0.4430.24
已解决
我在 mac
上找到了一个适用于 chrome91.0.4472.114
的临时解决方法
这里描述的问题实际上是 chrome 驱动程序 https://bugs.chromium.org/p/chromium/issues/detail?id=1205107 中的一个错误,所以它不仅仅是 Protractor 问题
正在处理中,您可以使用chrome驱动程序版本 90。奇迹般有效。最新版本在这里 https://chromedriver.storage.googleapis.com/LATEST_RELEASE_90.0.4430
您可以通过运行执行此命令
来降级chrome驱动程序webdriver-manager update --gecko=false --versions.chrome 90.0.4430.24
请注意,有时您会在全局、项目本地和 Protractor 特定安装 webdriver-manager。我给出的命令将全局安装 chrome 驱动程序。为了在本地安装,您需要找到您的 webdriver-manager 的路径和 运行 这样的命令
node ./node_modules/protractor/node_modules/webdriver-manager update --gecko=false --versions.chrome 90.0.4430.24
有些人可能需要在 sudo
模式下执行 运行 命令。记在心里
我遵循了另一个解决方法。
转到 google chrome 并打开开发者工具
使用 CSS 识别元素并在您的开发者控制台中获取元素的值,如下所示。
$("input[data-bind *='selectedParentKpi']")[0].value
3.Get 来自量角器的数据,使用 javascript
browser.executeScript("return $(\"input[data-bind *='selectedParentKpi']\")[0].value").then(function (data1){
cb();
})
您不需要降级。有些答案很接近,但您可以像这样传入一个量角器元素。
const value = await browser.executeScript("return arguments[0].value", myElement);