【问题标题】:Get text from the element从元素中获取文本
【发布时间】:2021-03-25 03:31:37
【问题描述】:

我想打印 span 元素(阿富汗)的文本,但是当我使用 span 的路径(//span[@class=‘mat-option-text’])时,它会打印文本ma​​t-iconwarning)也是如此。

控制台:

Afghanistan warning

谁能帮助我如何打印阿富汗

【问题讨论】:

  • 请添加您正在使用的您希望输出文本的代码行。

标签: javascript java selenium xpath css-selectors


【解决方案1】:

你需要执行 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);

【讨论】:

  • 我是这样处理的:getText().replace("warning", "")
【解决方案2】:

文本阿富汗位于文本节点内。因此,要检索文本,您必须为visibilityOfElementLocated() 诱导WebDriverWait,您可以使用以下任一Locator Strategies

  • 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());
    

【讨论】:

    猜你喜欢
    • 2011-06-14
    • 2018-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-29
    • 1970-01-01
    • 2021-05-28
    相关资源
    最近更新 更多