2016-06-27 11 views
0
1.<svg blablabla style:overflow: hidden > <aaa id=aaa> 
2.+ 
    3.<g> 
    4.<g> 
    5.<g> 
    6.<g> 

タグはsvg内にあります。 1は非表示のタグで、5行目のtext()を取得したいのですが、これは私が行うことです。Selenium java code:多くのタグを含む隠し要素からテキストを読み取る方法

WebElement hiddenDiv = driver.findElement(By.id("aaa")); 
String n = hiddenDiv.getText(); 
String script = "return arguments[0].innerHTML"; 
n = (String) ((JavascriptExecutor) driver).executeScript(script, hiddenDiv); 
System.out.println(n); 

は、どのように私は、[2]、私は直接のxpathで試してみましたとSVGが隠されているので、それはエラーを得たグラムを得ることができます。

+0

エラーは何ですか? –

+0

nに(NULL)が含まれています... 5行目( Mind5

+0

'document.getElementsByTagName( 'g')'はarray.soに 'document.getElementsByTagName( 'g')[2] .innerHTML'のようにインデックスを提供する必要があります –

答えて

0

gタグの配列を取得して、必要なタグを選択するだけで済みます。 5番目にしたい場合は、以下のコードを使用します。

List<WebElement> gs = driver.findElements(By.cssSelector("#aaa g")); 
System.out.println(gs.get(4).getAttribute("innerHTML")); 
+1

Webriverは、あなたの周りの仕事に空の文字列を返します。getAttribute( "innerHTML") – dmr

+0

@dmrありがとうございました。私はその質問を誤解した。これらの要素がすべて隠されていても、それは見つからないので、これはうまくいくことはありません。 OPはJSEを利用してテキストを入手する必要があります。私は最初の要素だけが隠されていると思った。私は下の要素がすべて子どもであることを認識しておらず、OPのコードが動作する場合、これはうまくいくはずです。私は混乱しています...しかし、おそらくこれはとにかく動作します。 :) – JeffC

関連する問題