我想单击包含无论是在链接文字部分列FOO或栏中的链接。
就像是:
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()
如果你不想创建n个条件行做,你可以使用XPath操作or
只是使用或。
例如://a[contains(text(), 'aaaaa') or contains(text(), 'bbbbb')]
我可以这样绕过它在短期内,但它似乎像一个蹩脚的解决方案:
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>