如何在背景颜色上编写 Web 驱动程序命令对象

How can Write Web driver command object on background color

我要拍摄新的到期日(附图片)

我尝试了以下代码

wait.Until(ExpectedConditions.ElementToBeClickable(By.XPath("//td[contains(@style,'background-color:rgb(164 164 187 / 15%);')]")));

return driver.FindElement(By.XPath("//td[contains(@style,'background-color:rgb(164 164 187 / 15%);')]"));
     

我得到的元素不是可交互的错误消息。请帮我解决这个问题。 我在附图中选择了页面上的元素(黄色突出显示)。

enter image description here

我不建议在您的 xpath 中包含 style 属性。原因是如果网络开发人员更改任何颜色值

background-color:rgb(164 164 187 / 15%);

您的 xpath 将失败。所以我们可以说这将是一个脆弱的 xpath。

但是因为你刚刚分享了这个 HTML

<td class="gridcell" style="background-color:rgb(164 164 187 / 15%);" aria-describedby="aaaca0c6-05dd-4b3b-b1ae-f79f6d42f64f" role="gridcell"></td>

你可以使用下面的 xpath

//td[@class='gridcell' and contains(@style,'background-color:rgb(164 164 187 / 15%);')]

请检查 dev tools (Google chrome) 我们是否在 HTML DOM 中有 unique 条目。

你应该检查的 xpath :

//td[@class='gridcell' and contains(@style,'background-color:rgb(164 164 187 / 15%);')]

检查步骤:

Press F12 in Chrome -> 转到 element 部分 -> 执行 CTRL + F -> 然后粘贴 xpath 并查看是否需要 element正在 突出显示 1/1 匹配节点。

如果我们有 1/1 匹配节点,请确保:

  1. 此 table/tr/td 不在 iframe 下。
  2. 此table/tr/td不在影子根下。
  3. 你不应该在 selenium 推出的新 tab/windows 上。