使用 Selenium 选择具有特定内容的锚点

Nan*_*nor 4 python selenium

我有一个 HTML 元素,如下所示:

<a class="country" href="/es-co">
    Columbia
</a>
Run Code Online (Sandbox Code Playgroud)

如何根据内容“Columbia”选择该锚元素?我不能使用,find_element_by_class_css_selector因为a.country代表六个元素。如何选择该元素并使用 Silenium 和 Python 单击它(通过 IE,如果有任何轴承)?

顺便说一句,我可以拥有任意数量的具有相同文本和 CSS 选择器的链接。Silenium 将如何脱颖而出?

Yi *_*eng 5

没有find_element_by_class_css_selector. 但你是对的,你不能使用类名。

最好的方法是使用href="/es-co",如果它是唯一的。

find_element_by_css_selector("a[href='/es-co']")
Run Code Online (Sandbox Code Playgroud)

否则您可以使用 XPath 通过文本查找

find_element_by_xpath(".//a[contains(text(), 'Columbia')])
Run Code Online (Sandbox Code Playgroud)

如果您有许多具有相同定位器的链接,那么您可以直接通过 XPath 或 Selenium 返回的列表对它们进行索引。

例如,如果您有十个Columbia

find_element_by_xpath(".//a[contains(text(), 'Columbia')][10]") # one-based index, one element only
find_elements_by_xpath(".//a[contains(text(), 'Columbia')]")[9] #  find_elements_* gives you zero-base index list
Run Code Online (Sandbox Code Playgroud)