如何从WebDriver中的Shadow Dom元素获取Text

时间:2017-02-17 07:15:28

标签: webdriver shadow-dom

我想从Dom

的阴影元素中获取文本

http://prntscr.com/e9smzg

我试过下面的代码,但它没有用..

 public String ShadowRootElement(String str) {
    WebElement ele = (WebElement) ((JavascriptExecutor) driver).executeScript("return arguments[0].shadowRoot",getElementByXpath(str));
    return ele.findElement(By.xpath("//div[@id='inner-editor']")).getText().toString(); 
    }

请参阅随附的html代码截图链接。

  public String getEmailId(String str){ 
            return ShadowRootElement(Repo.get("ipEmailId"));       
    }

1 个答案:

答案 0 :(得分:0)

首先,你拨打ele.findElement(By.xpath("//div[@id='inner-editor']")).getText().toString();的方式很麻烦。

要在影子根节点下找到元素,By.xpath()将无效。只有By.id()& By.cssSelector()将作为有效的定位器。有关详细信息,请参阅this帖子。

其次(不幸的是),我发现即使你可以在阴影根下找到节点,element.getText()方法也会返回一个空字符串..简单地说它对我来说也不起作用: - (