如何使硒尝试2 xpath并获得正确的硒

时间:2020-07-22 21:57:40

标签: python python-3.x selenium selenium-webdriver selenium-chromedriver

**您好,我是硒的新手-Python 消息中的图像有时是“ messages-4”,有时是“ messages-3” 它会无缘无故地发生变化(在应用程序中),所以我想让硒尝试它们两者来选择正确的一种 那可能吗?谢谢,

driver.find_element_by_css_selector(“#messages-4> div.container-1ov-mD> a> img”)

driver.find_element_by_css_selector(“#messages-3> div.container-1ov-mD> a> img”)

我尝试过:

driver.find_element_by_css_selector(“#messages-4> div.container-1ov-mD> a> img”或“#messages-3> div.container-1ov-mD> a> img”)**

2 个答案:

答案 0 :(得分:0)

一种简单的实现方法是使用try和except块,如下所示:

try:
   driver.find_element_by_ccs_selector('#messages-3)
except Exception as e:
   print(e)
   driver.find_element_by_ccs_selector('#messages-4')

这意味着驱动程序将首先尝试查找消息3,如果消息3不存在,则驱动程序将尝试查找消息4

答案 1 :(得分:0)

您可以如下所示组合这两个消息。

如果要使用 find_element_by_css_selector 获取第一个匹配元素,则要获取所有匹配元素,然后使用 find_elements_by_css_selector

driver.find_element_by_css_selector("#messages-3,#messages-4 > div.container-1ov-mD > a > img")

注意,是CSS中的OR运算符。