Selenium[Java]:如何让它等到一个表被刷新?
假设我有一个网页,其中有记录,显示在一个表中(有多个列)。现在有了搜索输入框和搜索按钮。使用这些我在表中搜索id为的记录 我正在使用隐式等待,它在大多数情况下似乎工作正常,但在这种情况下失败:Selenium[Java]:如何让它等到一个表被刷新?,java,selenium,selenium-webdriver,Java,Selenium,Selenium Webdriver,假设我有一个网页,其中有记录,显示在一个表中(有多个列)。现在有了搜索输入框和搜索按钮。使用这些我在表中搜索id为的记录 我正在使用隐式等待,它在大多数情况下似乎工作正常,但在这种情况下失败: 在使用隐式等待登录后,我让页面加载表中的所有数据 在搜索输入框中输入id并单击搜索按钮 现在我只希望有一条记录,而不是所有的记录 在搜索发生之前显示在表中 似乎它没有找到足够的时间刷新表,并且仍然显示所有记录,即使我搜索了(表中的id列): List idRows=driver.wait(,).unt
- 在使用隐式等待登录后,我让页面加载表中的所有数据
- 在搜索输入框中输入id并单击搜索按钮
- 现在我只希望有一条记录,而不是所有的记录 在搜索发生之前显示在表中
List idRows=driver.wait(,).until(driver->driver.findElement(By.id(“column id”));
如果我在单击搜索按钮后使用Thread.sleep(),一切都很好,因为我看到表已按预期结果刷新。但是,我必须避免使用thread.sleep
我可以得到一些建议吗?如何让它等待,直到使用搜索的数据刷新表?如果您知道您正在搜索的id是唯一的,在这种情况下,您可以这样做: 单击
搜索
按钮后,等待记录大小为1
wait.until(driver -> records.size() == 1);
如果搜索到的id
不是唯一的,并且搜索后可以看到多个结果,可以通过以下方式执行:
单击搜索
按钮之前,您可以获得记录的大小
int size = records.size();
单击搜索
按钮后,您可以等待记录大小增加:
wait.until(driver -> records.size() < size);
wait.until(驱动程序->记录.size()
…我希望只有一条记录,而不是所有记录。。。使用搜索条件从所有记录中查找同一记录如何?请添加html源代码或提供更好的url。
wait.until(driver -> records.size() < size);