如何在SeleniumWebDriverJava中使用css选择器定位元素?
我正在尝试查找第三个div角色的文本:如何在SeleniumWebDriverJava中使用css选择器定位元素?,java,selenium-webdriver,css-selectors,Java,Selenium Webdriver,Css Selectors,我正在尝试查找第三个div角色的文本: <div class="jss295"> <div class="section-header"> <h3 class="section-header-title">LABELS</h3></div> <div role="button" class="jss300 jss299" tabindex="-1"><span class="jss313
<div class="jss295">
<div class="section-header">
<h3 class="section-header-title">LABELS</h3></div>
<div role="button" class="jss300 jss299" tabindex="-1"><span class="jss313">system-all</span></div>
<div role="button" class="jss300 jss299" tabindex="-1"><span class="jss313">paloaltonetworks_iPoiycgPut</span></div>
<div role="button" class="jss300 jss299" tabindex="-1"><span class="jss313">system-paloaltonetworks</span></div>
</div>
标签
系统所有
帕洛阿尔托网络公司
系统帕洛阿尔托网络
我尝试了如下xpath
:driver.findelelement(By.xpath(//span[contains(text(),“+str+”)])))).getText()
,其中str
是我需要的文本。xpath
可以工作,但我想改用cssSelector
:contains()CSS伪类选择器已从CSS3规范中删除。如果您使用的是最新的浏览器,这将不起作用,这将与新的CSS标准相冲突
如果类名是唯一的,则可以将cssSelector用作:
span.valueOfClass
//在您的场景中,似乎所有的类名都是相同的
我想最好使用XPath
试一试:
By.cssSelector(span[text()$=paloaltonetworks])
如果您的意思是希望通过文本选择节点,那么使用CSS选择器(
:contains
伪类不受Selenium支持)恐怕是不可能的。如果您有文本来选择元素,那么为什么要在元素中返回文本?在我看来,您似乎已经拥有了它…@JeffC-您说得对,但我想获取文本以便在测试中使用它我想在执行导致此文本出现的n操作后验证此文本是否存在,我想确保在我的测试运行和创建此文本(这是一个标签)时存在,我想将我的预期结果与实际结果进行比较。