我正在自动化门户网站。我遇到了一个不同的问题。我有两个下拉列表,例如A和B.当页面加载时,A将具有列表中的第一个值,因此B具有它的值。当用户从A中选择值时,B中相应的值会发生变化。所以,我坚持我怎么能添加明确的等待。我尝试了以下代码。
WebDriverWait wait = new WebDriverWait(getDriver(), 20);
WebElement element = wait.until(ExpectedConditions.presenceOfElementLocated(elementPath));
但是下拉列表B中的值已经存在于页面加载中。因此,它不是等待B更改中的文本,而是采用默认值。
有人可以帮忙吗?
答案 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