硒:在find_element_by_partial_link_text使用多个字符串()

问题描述 投票:1回答:2

我想单击包含无论是在链接文字部分列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&amp;eCode=0XrIMF9p%2BMKSvdpdpqC5Nd3VFn4fB1eLXC3X0yHiYptOxprT0N%2BtjAu0%3D" target="_blank" type="submit">foo</a>

或者一个带酒吧

<a class="noprint" href="/DocView/Doc?request=62391270&amp;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()
python selenium selenium-webdriver
2个回答
3
投票

如果你不想创建n个条件行做,你可以使用XPath操作or只是使用或。

例如://a[contains(text(), 'aaaaa') or contains(text(), 'bbbbb')]


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&amp;eCode=0XrIMF9p%2BMKSvdpdpqC5Nd3VFn4fB1eLXC3X0yHiYptOxprT0N%2BtjAu0%3D" target="_blank" type="submit">foo</a>

或者一个带酒吧

<a class="noprint" href="/DocView/Doc?request=62391270&amp;eCode=CWJ1stkSu3qFZ1coGTEsM8ka4xqU0XrIMF9p%2BfB1eLXC3wh4xPFQnYwOqX0yHiYptOxprT0N%2BtjAu0%3D" target="_blank" type="submit">bar</a>
© www.soinside.com 2019 - 2024. All rights reserved.