Javascript 为什么seleniums findElement(By.css)(“span:contains(string)”不起作用?

Javascript 为什么seleniums findElement(By.css)(“span:contains(string)”不起作用?,javascript,css,selenium,firefox,webdriver,Javascript,Css,Selenium,Firefox,Webdriver,我试图让SeleniumWebDriver单击网站上的特定元素。该元素实际上是文本 现在javascript中的代码const spanElement=driver.findElement(By.css(“span:contains('TEXT'));向我抛出了一个错误: InvalidSelectorError: Given css selector expression "span:contains('TEXT')" is invalid: InvalidSelectorError: 'sp

我试图让SeleniumWebDriver单击网站上的特定元素。该元素实际上是文本

现在javascript中的代码
const spanElement=driver.findElement(By.css(“span:contains('TEXT'));
向我抛出了一个错误:

InvalidSelectorError: Given css selector expression "span:contains('TEXT')" is invalid: InvalidSelectorError: 'span:contains('TEXT')' is not a valid selector: "span:contains('TEXT')"
使用Selenium IDE和
css=span:contains('Strategy Tester')
查找该元素

  • selenium webdriver v3.6.0
  • 壁虎河
  • firefox v60.0.2

我在这里遗漏了什么?

不确定为什么在Selenium IDE中可以这样做,但这不是一个有效的CSS选择器。您可以在Selenium WebDriver中使用XPath做同样的事情

By.xpath("//span[contains(.,'TEXT')]";

谢谢。这很有效!有没有任何方法可以使用
.By.css()
来查找实际文本?我读到
.By.css()
.By.xpath()
工作得更快,而且我想尝试使用
.By.css()
尽可能多。无论如何,
xpath
现在可以使用,我现在就使用它。谢谢。@r.roger,恐怕不行。CSS不会通过包含的文本来查找元素。根据实例的不同,可能有一些方法可以唯一地查找元素,而不需要使用CSS通过文本来查找元素,但这是根据具体情况而定的。