2017-02-17 14 views
0

獲取文本我想獲取來自如何從陰影DOM元素中的webdriver

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

可能的複製工作[如何從JavaScript的陰影根元素獲取元素?](http://stackoverflow.com/questions/38701803/how-get-element-from-shadow-root-with-javascript) – Supersharp

回答

0

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

要找到影子根節點下的元素,By.xpath()將不起作用。只有By.id() & By.cssSelector()將作爲有效的定位器工作。詳情請參閱this的帖子。

其次(不幸的),我發現就算你能找到下影根目錄的節點,element.getText()方法將返回一個空字符串..簡單地把它不會對我也:-(