2016-12-20 4 views
1

値と比較するために、画面に表示されている値( "70")を抽出します。Selenium - ラベル内のテキストを見つけることができません

タイトル、値、innerHTML、innerTextの値が異なるgetText(),getAttributeを既に試したことがあります。残念ながら、それらのどれも働いていませんでした。

これをどのように行うことができますか?

<label id="current_heat_setpoint" class="e_field_data_text">70</label> 

注:

私は要素を見つけることができるよ、すでにそれが正しいものであることを確認してきている - getAttribute("id")は「current_heat_setpoint」を返しました。

+0

それがページ上の同じ 'current_heat_setpoint' idを持つ複数の要素があることだろうか? – alecxe

+0

@alecxe FirePathを使用して検証された、そのIDを持つ要素は1つだけです。 – kanayikkaran

+0

よろしくお願いいたします。その後、タイミング問題のように聞こえます。これは問題ありませんが、あなたはそれを考慮する必要があります。理論では、ヒートセットポイント値はページロード後に動的に設定され、値を読むとまだ設定されていません。それが真実かもしれないと思うなら、私はそれを解決するための可能なアプローチをあなたに提供することができます。 – alecxe

答えて

1

コメントで説明したように、これはタイミングの問題のように見えます。ラベルのテキストは動的に設定されており、表示するまで待つ必要があります。これはWebDriverWaitカスタム予想される条件で達成することができます:

WebDriverWait wait = new WebDriverWait(driver, 10); 
WebElement label = wait.until(new ExpectedCondition<Boolean>() { 
    public Boolean apply(WebDriver driver) { 
     return driver.findElement(By.id("current_heat_setpoint")).getText().length() > 0; 
    } 
}); 
System.out.println(label.getText()); 
関連する問題