Java Selenium:等待下拉列表更新后获取下拉列表的值
我有两个选择下拉列表。当我为第一个下拉列表选择一个选项时,它将自动更新第二个选项。我需要检查第二个下拉列表的值是否与第一个下拉列表的值相同 我的问题是在第二个下拉列表中有预加载的值。如果我访问它,返回值都是那些预加载的值。我需要等待下拉列表值更新,然后我将获取用于检查的值 我试图等待,希望在一段时间后,该值将被更新,但它会导致一个错误。这是我等待的代码:Java Selenium:等待下拉列表更新后获取下拉列表的值,java,selenium,wait,dropdown,Java,Selenium,Wait,Dropdown,我有两个选择下拉列表。当我为第一个下拉列表选择一个选项时,它将自动更新第二个选项。我需要检查第二个下拉列表的值是否与第一个下拉列表的值相同 我的问题是在第二个下拉列表中有预加载的值。如果我访问它,返回值都是那些预加载的值。我需要等待下拉列表值更新,然后我将获取用于检查的值 我试图等待,希望在一段时间后,该值将被更新,但它会导致一个错误。这是我等待的代码: driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); 我也不能使
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
我也不能使用它,因为元素从一开始就存在
WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector(".z-phenotype-dropdown.z-select")));
第二个下拉列表的html代码如下所示:
<td>
<tbody>
<tr>
<select class="z-phenotype-dropdown z-select">
<option class="z-option"> </option>
<option class="z-option"> sample 1 </option>
<option class="z-option"> sample 2 </option>
<option class="z-option"> sample 3 </option>
</select>
</tr>
</tbody>
</td>
样本1
样本2
样本3
我假设下拉列表中的默认元素数为4,等待选项数大于4,如下所示。它可能对你有用
WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.numberOfElementsToBeMoreThan(By.cssSelector(".z-phenotype-dropdown.z-select>option"),4));
以下方法也可能有效:
WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until (ExpectedConditions.presenceOfElementLocated (By.xpath ("//option[contains(text(),'sample 1')]")));
你能给我们同样的HTML代码吗?实际上我对它做了一点修改,但是非常感谢你的想法!这就是我使用的:WebDriverWait wait=newwebdriverwait(driver,10);等待.until(ExpectedConditions.numberOfElementsToBeLessThan(By.cssSelector(“.z-epotype-dropdown.z-select>option”),3);