我想提取出现在屏幕上的值(“70”),以便将其与值进行比较。
已尝试使用不同值的getText()
,getAttribute
- title,value,innerHTML,innerText。不幸的是,他们都没有工作。
关于我们如何做到这一点的任何想法?
<label id="current_heat_setpoint" class="e_field_data_text">70</label>
注意:
我能够找到元素已经确定它是正确的 - getAttribute("id")
返回“ current_heat_setpoint ”。
答案 0 :(得分: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());