<div class='into'>
<div class="state " rel="AA" style="width:80px;">AA (1028)</div>
<div class="state " rel="BB" style="width:80px;">BB (307)</div>
</div>
我想选择其中一个元素rel="AA"
或rel="BB"
来点击它,尝试了几种方法。最有用的想法是:
browser.find_element_by_xpath("//div[@class='into']/[text()='AA']").click()
然而,文本后面有一些数字是多种多样的。
browser.find_element_by_xpath("//div[@class='into']/[rel='AA']").click()
这不起作用。
答案 0 :(得分:1)
使用以下xpath
browser.find_element_by_xpath(".//div[@class='into']/div[@rel='CA']").click()
也可以使用normalize-space
方法省略类名中的空格,如下所示 -
browser.find_element_by_xpath(".//div[normalize-space(@class)='state'][@rel='AA']").click()
答案 1 :(得分:0)
如果要将示例与text()一起使用,则可以使用以下任一方法:
browser.find_element_by_xpath("//div[@class='into']/div[contains(text(), 'AA')]").click()
或
browser.find_element_by_xpath("//div[@class='into']/div[starts-with(text(), 'AA')]").click()
否则使用@lauda给出的答案并使用@rel将其声明为属性
答案 2 :(得分:0)
如果您需要XPath
匹配其中一个元素属性rel="AA"
或 rel="BB"
(如果其中一个元素可能不在页面上)然后尝试下面:
browser.find_element_by_xpath("//div[@class='into']/div[@rel="AA" or @rel="BB"]").click()