2016-05-31 9 views
0

のgetText()を返す空白

<div class="header"> Account</div> 
 
<div class="header"> Email</div> 
 
<div class="value ng-binding">$50</div>==$0

上記は私がテキストを取得しようとしています、HTMLスニペットです。

私が直面している問題は、Seleniumが$ 50の代わりに要素を見つけて空白に戻すことができることです。

+0

あなたのコードだとしてみてください? –

+0

driver.findElements(By.cssSelector( "。value.ng-binding"))。getText();これは空白に戻ります。ここでは、要素を見つけるためにcssSelectorを使い、classNameとXpathで試してみました。 –

+0

サイトを共有します。可能なら。 –

答えて

0

$ 50を返すには、代わりにClassNameに.getAttribute("innerHTML");を使用してください。

+0

です。素早く対応してくれてありがとう、セレンには新しく、innerHTMLは何ですか? –

+1

element.getText()は、要素のすべての子要素に表示されているすべてのテキストを返します。 element.getAttribute( "innerHTML")は、探している要素の中のすべてのhtmlを返します(html要素が存在する場合はそのようにします)。しかし、両方ともこの要素のために働くべきです。 getText()がここでは機能しない理由はありません。 – Mobrockers

+0

おかげでjude、それは私のために働いていましたが、getText()は空白です。 –

0

使用次のアプローチ: -

WebDriverWait wait = new WebDriverWait(driver, 10); 
WebElement el = wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector(".value.ng-binding"))); 
String text = el.getText(); 
System.out.println(text); 

出力:$ 50

が、それはあなたを助けることを願っています。.. :)

0

C#

IWebElement Saurabhガウルに同意しますdiv = driver.FindElement(By.CssSelector( "。value.ng-binding"));

Console.WriteLine(div.Text);

2

「id」を使用してJavaScriptでデータを取得するのは良い方法です。あなたの問題のためには、以下のコードのように試すことができます。

<div class="header"> Account</div> 
<div class="header"> Email</div> 
<div id="value" class="ng-binding">$50</div>==$0 

、その後

driver.findElements(By.cssSelector("#value.ng-binding")).getText(); 
関連する問題