我想知道是否可以通过 css 定位器通过精确文本匹配元素(总体目标是将其用作 Selenium
的定位器)。我知道contains
方法
例如:
<div><div>S - Subscriber</div></div>
我可以通过 css=div:contains('Subscriber')
检索它或通过 css=div:contains('S - Subscriber')
但我需要完全匹配。我试过css=div:contains('^S - Subscriber$')
并且没有找到这个元素。
还有一点:
当我们使用xpath
时我们可以通过使用 text()
检索文本来假设给定的文本位于精确的元素中函数(例如 //div[text()='S - Subscriber']
会将我们精确地指向子 div,每当 //div[contains(., 'S - Subscriber')]
会将我们指向父 div,如果我没有搞砸),那么 css 中是否有等效的另一种方式 css=div > div:contains('S - Subscriber')
?我的意思是只指向一个元素,没有父 div。
提前致谢!
最佳答案
由于您使用的是 selenium,所以我会选择使用 Xpath。您将通过以下方式获得所需的元素:browser.find_element_by_xpath('//div[text()="S - Subscriber"]')
遗憾的是,您无法使用 css 选择器来完成您想要做的事情。
关于selenium - 使用 css 选择器在精确元素中按精确文本查找元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25889653/