我想单击链接文本中包含 partial 字符串 foo OR bar 的链接。
类似的东西:
elem = driver.find_element_by_partial_link_text(['foo','bar']).click()
,或者如果它是使用str.contains( “富|栏”)式:
elem = driver.find_element_by_partial_link_text('foo|bar']).click()
什么是正确的方法?
编辑 HTML示例:
<a class="noprint" href="/Docs/Doc?request=62391270&eCode=0XrIMF9p%2BMKSvdpdpqC5Nd3VFn4fB1eLXC3X0yHiYptOxprT0N%2BtjAu0%3D" target="_blank" type="submit">foo</a>
或者一个与杆
<a class="noprint" href="/DocView/Doc?request=62391270&eCode=CWJ1stkSu3qFZ1coGTEsM8ka4xqU0XrIMF9p%2BfB1eLXC3wh4xPFQnYwOqX0yHiYptOxprT0N%2BtjAu0%3D" target="_blank" type="submit">bar</a>
EDIT2 ,最终的工作代码为:
elem = driver.find_element_by_xpath("//a[contains(text(), 'foo') or contains(text(), 'bar')]").click()
答案 0 :(得分:3)
如果您不想创建N条条件行来执行此操作,则可以使用xpath或使用运算符or
。
示例://a[contains(text(), 'aaaaa') or contains(text(), 'bbbbb')]
答案 1 :(得分:0)
这样做可以在短期内解决它,但这似乎是一个糟糕的解决方案:
try:
elem = driver.find_element_by_partial_link_text('foo').click()
except:
elem = driver.find_element_by_partial_link_text('bar').click()
编辑 HTML示例:
<a class="noprint" href="/Docs/Doc?request=62391270&eCode=0XrIMF9p%2BMKSvdpdpqC5Nd3VFn4fB1eLXC3X0yHiYptOxprT0N%2BtjAu0%3D" target="_blank" type="submit">foo</a>
或者一个与杆
<a class="noprint" href="/DocView/Doc?request=62391270&eCode=CWJ1stkSu3qFZ1coGTEsM8ka4xqU0XrIMF9p%2BfB1eLXC3wh4xPFQnYwOqX0yHiYptOxprT0N%2BtjAu0%3D" target="_blank" type="submit">bar</a>