Python Selenium xPath从div类中选择一个rel

时间:2017-02-01 11:38:11

标签: python selenium xpath

<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()

这不起作用。

3 个答案:

答案 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()