我有一个HTML元素如下:
<a class="country" href="/es-co">
Columbia
</a>
如何根据内容选择该锚元素&#39;哥伦比亚&#39;?我无法使用find_element_by_class_css_selector
,因为a.country
代表了六个元素。如何选择该元素并使用Silenium with Python单击它(通过IE,如果有任何影响)?
顺便说一下,我可以使用相同的文本和CSS选择器进行任意数量的链接。 Silenium如何区分?
答案 0 :(得分:4)
没有find_element_by_class_css_selector
。但你是对的,你不能使用类名。
最好的方法是使用href="/es-co"
,如果它是唯一的。
find_element_by_css_selector("a[href='/es-co']")
否则,您可以使用XPath
通过文本查找find_element_by_xpath(".//a[contains(text(), 'Columbia')])
如果您有许多带有相同定位符的链接,那么您可以直接通过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
答案 1 :(得分:0)
如果<a>
包含可点击的文字,Selenium会提供find_with_link_text
或find_with_partial_link_text
等API(API名称很多,但您明白了)。
如果有许多<a>
具有相同的text/css-class
,那么找到它们的最佳选择是使用selenium API接受的XPath。