Selenium - 单击文本为IMG的链接

时间:2013-06-11 04:21:18

标签: python image xpath selenium

我想点击页面上的“下一页”链接。 html的链接是:

<a href="http://www.lewisbrisbois.com/attorneys/search/-/eyJjb2xsZWN0aW9uIjoiYXR0b3JuZXlzIiwicmVzdWx0X3BhZ2UiOiJhdHRvcm5leXNcL3NlYXJjaFwvLSIsInNlYXJjaF9tb2RlIjoiYWxsIiwic2l0ZSI6ImRlZmF1bHRfc2l0ZSJ9/P30"><img src="/assets/images/icons/arrow-orange-right.png" alt="Picture" /></a>

img是橙色箭头。 img在后续页面上没有变化,但链接确实如此。所以我想使用img选择链接,而不是使用链接本身(这样我就不必使用30个不同的xpath,而只能使用一个)。

存在的页面是:http://www.lewisbrisbois.com/attorneys/search/-/eyJjb2xsZWN0aW9uIjoiYXR0b3JuZXlzIiwicmVzdWx0X3BhZ2UiOiJhdHRvcm5leXNcL3NlYXJjaFwvLSIsInNlYXJjaF9tb2RlIjoiYWxsIiwic2l0ZSI6ImRlZmF1bHRfc2l0ZSJ9

有没有办法在硒中做到这一点?

1 个答案:

答案 0 :(得分:1)

通过部分src(文件名)找到img,然后转到其父a标记。

driver.find_element_by_xpath("//img[contains(@src, 'arrow-orange-right.png')]/parent::a")  

等效xpath(第一个找到父a,第二个直接转到父元素):

//img[contains(@src, 'arrow-orange-right.png')]/parent::a
//img[contains(@src, 'arrow-orange-right.png')]/..

如果部分src不是唯一的,您可能希望使用完整路径/assets/images/icons/arrow-orange-right.png

//img[@src='/assets/images/icons/arrow-orange-right.png']/..