【问题标题】:getAttribute("value") doesn't work with driver 91.0.4472.19 and Chrome 91.0.4472.77getAttribute("value") 不适用于驱动程序 91.0.4472.19 和 Chrome 91.0.4472.77
【发布时间】:2021-06-01 08:09:16
【问题描述】:

Chrome 和驱动程序更新到第 91 版后,我发现驱动程序为 91.0.4472.19 (win32) 的 VBA 宏变成了从输入标记“值”属性返回空字符串 (""):

Dim ch As SeleniumWrapper.WebDriver
Dim el As WebElement
' some code here ...
ch.findElementById("htmlLoginId").SendKeys login
Set el = ch.findElementById("htmlLoginId")
txt = el.getAttribute("value")

使用较旧的驱动程序版本 90.0.4430.24 可以正常工作。希望它会在下一个驱动程序版本中得到修复。

还有其他方法可以从input[type=text] 标签中获取价值吗?我想避免92版不修复这个bug,90版驱动不兼容的情况。

【问题讨论】:

  • 真正的问题是什么?
  • 还有其他方法可以从 input[type=text] 标签中获取价值吗?我想避免这个错误在第 92 版中无法修复并且第 90 版驱动程序版本不兼容的情况。

标签: vba selenium-chromedriver getattribute


【解决方案1】:

自从新的 chrome 驱动程序问世以来,我们一直在与这个问题作斗争。如果我们想要检索元素的属性(不是 html 属性),我们所做的解决方法是绕过对 webdriver 的 getAttribute 方法的调用,而是使用以下自定义脚本:

browser.executeScript(`return arguments[0].${this.textAttribute}`, el);

上面的例子对量角器有效,这就是我们正在使用的。如果您的堆栈不同,您需要调用browser.executeScript 的适当替代方案,但脚本本身将完全相同。

【讨论】:

  • 这似乎适用于量角器,但感觉有点 hacky。感谢分享 Ivaylo!
【解决方案2】:

我们做到了!

ARG CHROME_VERSION="90.0.4430.212-1"
RUN wget --no-verbose -O /tmp/chrome.deb https://dl.google.com/linux/chrome/deb/pool/main/g/google-chrome-stable/google-chrome-stable_${CHROME_VERSION}_amd64.deb \
  && apt install -y /tmp/chrome.deb \
  && rm /tmp/chrome.deb
./webdriver-manager update --versions.chrome 90.0.4430.24

【讨论】:

    【解决方案3】:

    这是 chrome 驱动程序 91 中的回归。已修复。希望尽快发布更新的 v91 chrome 驱动程序。

    https://bugs.chromium.org/p/chromium/issues/detail?id=1205107

    与此同时,我们正在使用 chrome 驱动程序 90。

    【讨论】:

      【解决方案4】:

      我也在复制这个 getAttribute('innerHTML') 。作为另一种解决方法,使用 Firefox 而不是 Chrome 运行测试

      【讨论】:

        【解决方案5】:

        在 C# 中使用 Web 元素的 GetAttribute() 获取元素的属性数据时,我们也遇到了类似的问题。苦苦挣扎了两天,找出根本原因是什么。对我们来说,由于代码库已经被冻结,因此不可能做出变通办法。等待修复。根据问题https://bugs.chromium.org/p/chromium/issues/detail?id=1205107,可能需要几周时间才能发布另一个带有修复的版本。

        该问题已在 ChromeDriver 91.0.4472.101ChromeDriver 92.0.4515.43

        的新版本中得到解决

        【讨论】:

          猜你喜欢
          • 2021-04-11
          • 1970-01-01
          • 2019-02-03
          • 2012-09-10
          • 1970-01-01
          • 1970-01-01
          • 2023-03-13
          • 1970-01-01
          • 2011-05-11
          相关资源
          最近更新 更多