Selenium / python - 无法找到部分链接文本

时间:2016-04-30 06:04:29

标签: python selenium selenium-webdriver

运行Chrome驱动程序(作为脚本和来自python REPL)的Windows 10上运行Python 2.7的Selenium无法通过部分链接文本找到元素,我不知道为什么。当我查看相关网页的源代码时,整个页面中只有WO20的一个实例,它位于链接中,但是selenium会返回no such element

以下是一个示例(WO20位于href之后):

<a id="resultTable:0:resultListTableColumnLink" name="resultTable:0:resultListTableColumnLink" href="detail.jsf?docId=WO2015102036&amp;recNum=1&amp;office=&amp;queryString=FP%3A%28JP2014005719%29&amp;prevFilter=&amp;sortOption=Pub+Date+Desc&amp;maxRec=3" target="_self"><span class="notranslate"> WO/2015/102036</span></a>

该页面还有一些其他链接,但我需要的是唯一一个具有字符组合WO20的链接,因此理论上这应该很容易识别。我的猜测是,selenium没有将此视为一个链接,这就是partial_link_text无效的原因。我已经尝试使用xpath(成功),但问题是返回表中的第n个链接,我需要的链接(我正在处理多个文档)不在固定位置

1 个答案:

答案 0 :(得分:4)

实际上,没有包含WO20的链接文字!我认为您将链接文本与href元素的<a>属性混淆。您可以通过链接文本/部分链接文本找到目标元素,并使用以下代码:

driver.find_element_by_link_text('WO/2015/102036')

driver.find_element_by_partial_link_text('WO/20')

XPaths也适用:

driver.find_element_by_xpath('//a[contains(@href, "WO20")]')
driver.find_element_by_xpath('//a[contains(text(), "WO/20")]')