Java 如何从div元素获取文本只返回一个"&引用;含硒

Java 如何从div元素获取文本只返回一个"&引用;含硒,java,selenium,xpath,css-selectors,webdriverwait,Java,Selenium,Xpath,Css Selectors,Webdriverwait,我有一个div元素,如下所示 我使用以下xpath标识此元素 //*[contains(@class,'ce-component-title')] Selenium标识此元素并加载WebElement对象。但当我去获取它的文本时,我只得到一个“.”,如下图所示,而不是“购买到支付流程”。我做错了什么?我检查了chrome控制台,没有其他元素匹配这个xpath 任何帮助都将不胜感激。根据您共享的HTML,元素是一个元素,因此您必须诱导WebDriverWait使所需元素可见,并且您可以使用以

我有一个div元素,如下所示

我使用以下xpath标识此元素

//*[contains(@class,'ce-component-title')]
Selenium标识此元素并加载WebElement对象。但当我去获取它的文本时,我只得到一个“.”,如下图所示,而不是“购买到支付流程”。我做错了什么?我检查了chrome控制台,没有其他元素匹配这个xpath


任何帮助都将不胜感激。

根据您共享的HTML,元素是一个元素,因此您必须诱导WebDriverWait使所需元素可见,并且您可以使用以下任一解决方案:

  • css选择器

    String myString = new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("div[ng-if*='getTitle']>div.ce-component-title"))).getAttribute("innerHTML");
    
  • xpath

    String myString = new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//div[contains(@ng-if,'getTitle')]/div[@class='ce-component-title flex text-overflow ng-binding']"))).getAttribute("innerHTML");
    
我认为您的xpath(//*[包含(@class,'ce-component-title')])返回多个元素,而您需要的元素不是第一个。 尝试使用浏览器的控制台来验证此xpath返回的元素数。
如果你给我这个页面的url,我可以帮你。

谢谢你的回答。如果元素不可见,我会得到一个元素未找到异常,对吗?我的WebElement对象中有元素。只是get text方法返回一个“.”。不,如果元素不可见,则会得到ElementNotVisible异常。解决方案如何?它起作用了吗?