Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Selenium 使用css选择器在精确元素中按精确文本查找元素_Selenium_Xpath_Selenium Webdriver_Css Selectors - Fatal编程技术网

Selenium 使用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$”)

我想知道是否可以通过css定位器通过精确的文本匹配元素(总体目标是将其用作
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更快,这是怎么回事?这是我本周听到的最新消息。如果没有解决方案,速度会更快呢?你会仅仅因为一个现成的替代方案慢(比一个根本不存在的大声叫喊的解决方案慢)而拒绝使用它吗?