我想提取屏幕上显示的值(“70”)以便将其与某个值进行比较。
已经尝试过使用不同值的 getText()
、getAttribute
- 标题、值、innerHTML、innerText。不幸的是,它们都不起作用。
知道如何做到这一点吗?
<label id="current_heat_setpoint" class="e_field_data_text">70</label>
注意:
我能够找到该元素,并确保它是正确的 - getAttribute("id")
返回“current_heat_setpoint”。
最佳答案
正如评论中所讨论的,这看起来确实像是一个计时问题 - 标签的文本是动态设置的,您需要等待它出现才能获取它。这可以通过 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());
关于java - Selenium - 无法找到标签内的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41245305/