如何在不使用contains()和xpath的情况下从标签中检索特定文本?

时间:2018-07-02 10:19:39

标签: java selenium selenium-webdriver xpath css-selectors

  
    绿巨人     铁人 雷神

如何仅获取Thor文本而不在xpath中使用contains?

如果我尝试获取div文本,它将给我全部3个(绿巨人,钢铁侠,雷神),但我只想要雷神。

2 个答案:

答案 0 :(得分:3)

要提取文本 Thor 而不在xpath中使用包含,您可以使用以下任一解决方案:

  • xpath

    String myText = driver.findElement(By.xpath("//div[not(@label)]")).getText();
    
  • cssSelector

    String myText = driver.findElement(By.cssSelector("div:not(label)")).getText();
    
  • 使用JavaScriptExecutor

    WebElement myElement = driver.findElement(By.xpath("//div[@attribute='value']")); //replace the pseudo attribute with actual attribute
    String myText = ((JavascriptExecutor)driver).executeScript('return arguments[0].lastChild.textContent;', myElement).toString();
    

注意:确保以//div[not(@label)] xpath 和以div:not(label) cssSelector 的形式类似于HTML DOM。

答案 1 :(得分:0)

能否请您尝试以下提到的路径?

/div/text()