SeleniumWebDriver(Java)-从css选择器中排除特定标记
如何从css选择器中排除标记。我有一个html代码如下:SeleniumWebDriver(Java)-从css选择器中排除特定标记,java,selenium,selenium-webdriver,css-selectors,Java,Selenium,Selenium Webdriver,Css Selectors,如何从css选择器中排除标记。我有一个html代码如下: <div class="info"> <h3>Test 1</h3> John Smith </div> 是否可以使用css选择器仅获取John Smith?这是selenium的一个“经典”问题,因为css选择器或xpath表达式必须始终引用实际元素-您无法直接获取文本节点 您可以在这里做的是: 获取div元素的文本 获取h3元素的文本 从div元素的文本中删除h3元素
<div class="info">
<h3>Test 1</h3>
John Smith
</div>
是否可以使用css选择器仅获取John Smith?这是selenium的一个“经典”问题,因为css选择器或xpath表达式必须始终引用实际元素-您无法直接获取文本节点
您可以在这里做的是:
- 获取
元素的文本div
- 获取
元素的文本h3
- 从
元素的文本中删除div
元素的文本h3
String div = new WebDriverWait(Login.driver, 100).until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector(".info"))).getText();
String h3 = div.findElement(By.tagName('h3')).getText();
String txtFix = div.replace(h3, '');
如果使用以下命令获取文本:
driver.findElement(By.cssSelector(".info")).getText();
Test 1
John Smith
String text = driver.findElement(By.cssSelector(".info")).getText().split("\n")[1];
它返回以下结果:
driver.findElement(By.cssSelector(".info")).getText();
Test 1
John Smith
String text = driver.findElement(By.cssSelector(".info")).getText().split("\n")[1];
如果您正确地看到,在测试1
之后,引入了char\n
,因此John Smith
在另一行
因此,如果您只想检索John Smith
,可以使用split
实现,如下所示:
driver.findElement(By.cssSelector(".info")).getText();
Test 1
John Smith
String text = driver.findElement(By.cssSelector(".info")).getText().split("\n")[1];