如何明确地等待在selenium中更改元素中的文本

时间:2016-01-06 13:04:16

标签: java selenium selenium-webdriver

我正在自动化门户网站。我遇到了一个不同的问题。我有两个下拉列表,例如A和B.当页面加载时,A将具有列表中的第一个值,因此B具有它的值。当用户从A中选择值时,B中相应的值会发生变化。所以,我坚持我怎么能添加明确的等待。我尝试了以下代码。

WebDriverWait wait = new WebDriverWait(getDriver(), 20);
        WebElement element = wait.until(ExpectedConditions.presenceOfElementLocated(elementPath));

但是下拉列表B中的值已经存在于页面加载中。因此,它不是等待B更改中的文本,而是采用默认值。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:3)

presenceOfElementLocated正在检查DOM中是否存在元素。这并不意味着它们是可见的,您可以与它们互动。

尝试

WebDriverWait wait = new WebDriverWait(getDriver(), 20);
WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated(elementPath));

或者

WebDriverWait wait = new WebDriverWait(getDriver(), 20);
WebElement element = wait.until(ExpectedConditions.textToBePresentInElementLocated(elementPath, text));

您可以等到元素可见或带文字。更多Expected Conditions