硒定位元素的一种以上方法

时间:2019-03-14 10:14:31

标签: python-3.x selenium-webdriver

我正在使用Selenium在页面中定位元素。有什么方法可以将两种方法结合在一起吗? 示例:

方法1:driver.find_elements_by_partial_link_text('html')

方法2:driver.find_elements_by_class_name('iUh30')

理想情况下,我会喜欢一种方法,该方法查找同时具有部分链接文本和类名的元素。

2 个答案:

答案 0 :(得分:1)

您可以使用xpath组合两个选择器:

driver.find_elements_by_xpath("//*[@class='iUh30'][text()[contains(.,'html')]]")

//*查找具有任何标签的任何元素。可能是<a>,可能是<div><input>等。您可以将其更改为所需的标签。

上面的内容通过 exact 类名称查找元素。您还可以使用[contains(@class, 'partial_class')]通过局部类查找元素。

[text()[contains(.,'html')]]查找部分文本为“ html”的元素

答案 1 :(得分:0)

如果要捕获包含 iUh30 的所有类,请使用以下xpath

//*[contains(@class,'iUh30')] | //*[text()[contains(.,'html')]]

否则,如果只需要类中具有完全文本 iUh30 的元素

//*[@class='iUh30'] | //*[text()[contains(.,'html')]]