javascript - 获取元素颜色在 selenium javascript 中返回错误的颜色

标签 javascript css selenium

元素的颜色会根据其中一个值而变化,我需要检查该颜色。我是否将 ID 分配给了正确的元素?

enter image description here

还有一个元素我可以在这里添加一个 ID:

enter image description here

但它似乎有同样的问题。

    const elmRating = await driver.wait(until.elementLocated(By.id("overallRating-20002")),4000).getText()
    const elmColor = await driver.wait(until.elementLocated(By.id('colorOf-20002'))).getCssValue("color")
    console.log(elmColor)

打印出:rgba(60, 72, 88, 1)这不是正确的(绿色)颜色

我尝试将其更改为(返回 rgba(0, 0, 0, 0) )
    const elmColor = await driver.wait(until.elementLocated(By.id('colorOf-20002'))).getCssValue("background-color")

这将返回 NULL
    const elmColor = await driver.wait(until.elementLocated(By.id('colorOf-20002'))).getAttribute("background-color")

最佳答案

我对 Selenium 没有太多经验,但让我们尝试一下。

一、getCssValue我相信是正确的使用方法;它将返回 CSS 属性的值,而 getAttribute将返回 HTML 属性的值(例如 "foo" 中的 <div id="foo"> ); getAttribute正在返回 null因为没有这样的属性可以返回。

现在。一方面,您似乎正试图在这一行中获取元素的背景颜色:

const elmColor = await driver
  .wait(until.elementLocated(By.id('colorOf-20002')))
  .getCssValue("color")

但是 color属性指定文本的颜色,而不是背景。 (有趣的是,它返回的颜色与带有大于号的圆形元素的颜色相匹配。)

在我看来,当您定位 div 时,这条线应该可以工作(看起来 h5 标记不太可能是要定位的正确元素):
const elmColor = await driver
  .wait(until.elementLocated(By.id('colorOf-20002')))
  .getCssValue("background-color")

您所做的调用返回一个带有零 alpha channel 的 RGBA 值这一事实意味着它针对的是具有透明背景的元素,所以我猜想在您将 ID 附加到 h5 后调用了此特定行。元素。

tl;博士:我想如果你把 ID 放回 div 上就可以了。而你使用 background-color而不是 color . (关于该 ID 的说明:出于测试目的,通常更适合使用数据属性来定位元素。)

关于javascript - 获取元素颜色在 selenium javascript 中返回错误的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56693954/

相关文章:

javascript - 如果在同一个容器上启动另一个 load() ,则 jQuery 停止 load()

javascript - Node 进程对象可用于浏览器客户端代码

java - Selenium/Select Dropdrown/断言某个值是否存在

java - 如何在java selenium中根据样式属性进行点击

python - Selenium Python "Name Error"我肯定错过了一些明显的东西

javascript - 如何使用 PHP 在服务器上保存 JavaScript 字符串并稍后再次请求?

css - Angular Material 对话框内的 4 列布局

html - 将背景图像作为新部分添加到 Bootstrap 站点

javascript - 如何(有效地)将标题添加到由 javascript 填充的 Bootstrap 轮播

php - Jquery 自动增长与另一个文本区域