从元素获取文本

yrefmtwq  于 2021-07-03  发布在  Java
关注(0)|答案(2)|浏览(372)

我想打印span元素(阿富汗)的文本,但是当我使用span的路径时( //span[@class=‘mat-option-text’] ),它还打印mat图标(警告)的文本。
慰问:

Afghanistan warning

有谁能帮我把阿富汗印出来?

lo8azlld

lo8azlld1#

您需要执行javascript:

WebElement span = driver.findElement(By.className("mat-option-text"));
JavascriptExecutor jse = (JavascriptExecutor)driver;
String spanText = jse.executeScript("return arguments[0].childNodes[0].text", span);
9fkzdhlc

9fkzdhlc2#

文本位于文本节点内。因此,要检索文本,必须为 visibilityOfElementLocated() 您可以使用以下任一定位器策略: cssSelector :

System.out.println(((JavascriptExecutor)driver).executeScript("return arguments[0].firstChild.textContent;", new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("span.mat-option-text")))).toString());
``` `xpath` :

System.out.println(((JavascriptExecutor)driver).executeScript("return arguments[0].firstChild.textContent;", new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//span[@class='mat-option-text']")))).toString());

相关问题