gpt4 book ai didi

python - 如何在一个元素的两个条件下使用 WebDriverWait(Python、Selenium)

转载 作者:行者123 更新时间:2023-11-28 15:55:07 26 4
gpt4 key购买 nike

使用 selenium 和 python 创建一些 GUI 测试。我正在测试以确保按钮存在并且在单击它之前是蓝色的(“事件”)......但有时颜色是十六进制,有时是 rgb,所以我需要检查我的网络驱动程序中的其中一个等待.

这是我所拥有的:

xpath = str(locator) + "[contains(@style, 'background: rgb(223, 239, 252)')]"

WebDriverWait(self.driver, 10).until(EC.presence_of_element_located((By.XPATH, xpath)))

现在这可行了,但我想添加 OR 'background: #2E6E9E' 作为从等待中继续前进的条件。

我用了this post了解如何在 css 样式上设置等待条件。

此外,将传递给定位器的内容的示例是

"//button[@id='button1']"

所以 xpath 将是

"//button[@id='button1'][contains(@style, 'background: rgb(223, 239, 252)')]"

最佳答案

您可以通过多种方式完成此操作。您可以沿着您现在正在查看的路径前进,并使用带有 CSS 选择器或 XPath 的 OR。这些都有据可查。

另一种选择是创建自定义等待。 this answer 中记录了这方面的示例.您可以利用 element.value_of_css_property("background") 返回 rgb 格式的字符串。即使格式以十六进制指定,它也会返回 rgb,因此在这种情况下您不需要 OR。您还可以使用记录在案的 Selenium 颜色支持模块 here .

关于python - 如何在一个元素的两个条件下使用 WebDriverWait(Python、Selenium),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41292081/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com