Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.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定位器+;类名+;用于标识跨距中按钮的内部html文本_Selenium_Selenium Webdriver_Automation_Css Selectors_Qa - Fatal编程技术网

Selenium 如何使用带有标记的CSS定位器+;类名+;用于标识跨距中按钮的内部html文本

Selenium 如何使用带有标记的CSS定位器+;类名+;用于标识跨距中按钮的内部html文本,selenium,selenium-webdriver,automation,css-selectors,qa,Selenium,Selenium Webdriver,Automation,Css Selectors,Qa,我正在使用SeleniumFirefoxDriver自动化一个测试用例(我是这方面的新手) 我需要一种定位按钮的方法(我认为它是作为div/span实现的) 当我在Selenium IDE中尝试使用xpath定位器时,该定位器可以工作。//span[contains(text(),'Login')] 我还可以使用span标记和classnameCSS=span.x-btn-button 我需要的是一种使用带有标记+类名+内部html文本的CSS定位器的方法。(这将帮助我处理应用程序中的一些其他U

我正在使用SeleniumFirefoxDriver自动化一个测试用例(我是这方面的新手)

我需要一种定位按钮的方法(我认为它是作为div/span实现的)

当我在Selenium IDE中尝试使用xpath定位器时,该定位器可以工作。
//span[contains(text(),'Login')]

我还可以使用span标记和classname
CSS=span.x-btn-button

我需要的是一种使用带有标记+类名+内部html文本的CSS定位器的方法。(这将帮助我处理应用程序中的一些其他UI元素)

HTML如下所示


登录

这篇文章提供了一些非常好的方法来使用xpath/css进行元素标识

但是,函数cssContainingText特定于量角器。

\Css

请记住,并非每个浏览器都支持CSS中的这个伪类,尤其是PhantomJS中不支持这个伪类(可能还有其他浏览器不支持这个伪类,但我记得就是这个)

从,大约75%的方式向下的页面

编辑: 再看一看,似乎“:contains(“”)”的伪选择器不再在CSS3规范中

如果您的web应用程序使用JQuery,您可以使用类似的选择器以这种方式检索元素,否则,您必须将JQuery加载到页面中,然后使用它,但这实际上不是使用CSS,而是JQuery中使用CSS语法的javascript选择器函数

结论:
目前,CSS(官方)不支持您的请求。

使用xpath,您可以执行以下操作。by.xpath('//div[@class=“text-label”和.=“SomeText”]特别是使用xpath,您可以执行以下操作。
by.xpath('//span[@class=“x-btn-button”和.=“Login”]
如果这能解决您的问题,请让我know@SakshiSingla谢谢。这给了我一个使用xpath和类名以及内部html的更多选项。我怎么能在同一个标记的多个类名中使用相同的方法呢?而且我真的在寻找一种在CSS定位器中使用相同方法的方法。我不确定使用CSS来实现它的方法!不确定也可以有多个类名。你能给出多个类名的html示例吗?我需要类似driver.findElement的东西(By.csscontingtext('span.x-btn-button','Login'))但是对于使用javaYes的selenium。但是使用cssSelector似乎不可能!让我们等待更多的响应,看看是否有使用cssSelector的解决方案。我尝试了
driver.findelelement(By.cssSelector(“span.x-btn-button:contains('Login'))。单击();
我正在获取org.openqa.selenium.InvalidSelectorException:引号有什么问题吗?/“下面是在Sel IDE中工作的单击css=span:contains('Login')。x-btn-button我将它从IDE转换为java格式,在驱动程序中使用它仍然不工作driver.findElement(By.cssSelector)(“span:contains('Login').x-btn-button”)。单击();查看我对原始答案的更新。基本上,不再支持:contains(“”)的伪选择器。令人惊讶的是,我认为Chrome仍然支持它。
findElement(By.cssSelector("span.x-btn-button:contains('Login'));