我正在使用Selenium在页面中定位元素。有什么方法可以将两种方法结合在一起吗? 示例:
方法1:driver.find_elements_by_partial_link_text('html')
方法2:driver.find_elements_by_class_name('iUh30')
理想情况下,我会喜欢一种方法,该方法查找同时具有部分链接文本和类名的元素。
答案 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')]]