Python 使用Selenium选择具有特定内容的锚点
我有一个HTML元素,如下所示:Python 使用Selenium选择具有特定内容的锚点,python,selenium,Python,Selenium,我有一个HTML元素,如下所示: <a class="country" href="/es-co"> Columbia </a> 如何根据“Columbia”内容选择锚元素?我不能使用find\u element\u by\u class\u css\u选择器,因为a.country代表六个元素。如何使用Silenium和Python选择该元素并单击它(通过IE,如果有任何关系的话) 顺便说一句,我可以有任何数量的链接与相同的文本和CSS选择器。Sileni
<a class="country" href="/es-co">
Columbia
</a>
如何根据“Columbia”内容选择锚元素?我不能使用find\u element\u by\u class\u css\u选择器
,因为a.country
代表六个元素。如何使用Silenium和Python选择该元素并单击它(通过IE,如果有任何关系的话)
顺便说一句,我可以有任何数量的链接与相同的文本和CSS选择器。Silenium如何区分?没有
通过类css\u选择器查找元素。但是你是对的,你不能使用类名
最好的方法是使用href=“/es co”
,如果它是唯一的
find_element_by_css_selector("a[href='/es-co']")
否则,您可以使用XPath通过文本查找
find_element_by_xpath(".//a[contains(text(), 'Columbia')])
如果有许多链接具有相同的定位器,则可以直接通过XPath或Selenium返回的列表对它们进行索引
例如,如果您有10个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
对于带有可点击文本的
,Selenium提供了类似于find\u with\u link\u text
或find\u with\u partial\u link\u text
(API名称可能会有所不同,但您有这个想法)
如果有许多
具有相同的文本/css类
,找到它们的最佳方法是使用selenium API接受的XPath。使用该名称的选择器。@Nanor:请再次查看。:)我说的是find\u element\u by_class\u css\u selector
不存在(你发布的),而不是find\u element\u by_css\u selector
啊哈哈,诅咒我的胖手指!似乎我一直在尝试组合几个选择器。谢谢你的帮助。您的xpath内容在将来肯定会很有用。@Nanor:我之所以没有给出find\u element\u by\u link\u text
,是因为您会遇到空白混乱的情况。尽可能使用CSS/XPath。匹配文本是一种糟糕的做法,如果你的网站将来支持多语言怎么办?你的测试会失败的,太好了!更多信息请点击此处: