Selenium 使用css选择器在精确元素中按精确文本查找元素
我想知道是否可以通过css定位器通过精确的文本匹配元素(总体目标是将其用作Selenium 使用css选择器在精确元素中按精确文本查找元素,selenium,xpath,selenium-webdriver,css-selectors,Selenium,Xpath,Selenium Webdriver,Css Selectors,我想知道是否可以通过css定位器通过精确的文本匹配元素(总体目标是将其用作Selenium的定位器)。我知道包含方法 例如: <div><div>S - Subscriber</div></div> S-订户 我可以通过css=div:contains('Subscriber')或css=div:contains('S-Subscriber')检索它,但我需要精确匹配。我尝试了css=div:contains(“^S-Subscriber$”)
Selenium
的定位器)。我知道包含方法
例如:
<div><div>S - Subscriber</div></div>
S-订户
我可以通过css=div:contains('Subscriber')
或css=div:contains('S-Subscriber')
检索它,但我需要精确匹配。我尝试了css=div:contains(“^S-Subscriber$”)
,但找不到此元素
还有一点:
<div><div>S - Subscriber</div></div>
当我们使用xpath
时,我们可以通过使用text()
函数检索文本(例如//div[text()='S-Subscriber']
将精确地将我们指向子div,只要//div[contains(,'S-Subscriber')]
将我们指向父div,如果我没有弄错的话),那么,css中是否存在另一种等价物,即css=div>div:contains('S-Subscriber')
?我的意思是只指向一个元素,没有父div
提前谢谢 您可以尝试使用正则表达式进行精确匹配
var r = /^a$/;
css=a:contains((r.test('Text')) ? 'Text' : '');
因为您使用的是selenium,所以我只使用Xpath。您将通过以下操作获得所需的元素:browser。通过xpath('//div[text()=“S-Subscriber”]')查找元素。
遗憾的是,你不能使用css选择器来完成你想做的事情 重复我在jquery中不需要它,我需要css选择器在Selenium中使用它。所以css=div[text='S-Subscriber']-未找到,css=div[text()='S-Subscriber']-未找到,您能建议如何构建它以用作Selenium的元素描述吗?更新了问题,但我认为标记将是InformativeEyes,我知道:)我的问题中有xpath,但我询问了css定位器,因为它“更快”,等等。我错过了:)但似乎css选择器不支持您尝试执行的操作。阅读这里投票率最高的评论:那么你的问题得到了回答:)如果你这样标记,我将不胜感激:)加油,因为也许有一天会有人想出解决方案:)人们直接假设CSS选择器比XPath更快,这是怎么回事?这是我本周听到的最新消息。如果没有解决方案,速度会更快呢?你会仅仅因为一个现成的替代方案慢(比一个根本不存在的大声叫喊的解决方案慢)而拒绝使用它吗?