我是 Selenium 的新手。我在 Java 中使用 Selenium WebDriver。我正在使用 Eclipse 作为 IDE。我已经为登录页面编写了一些代码并且它运行成功。现在我想在成功登录后转到所需的页面,但我想等待一段时间再转换另一个页面。如何在加载另一个页面之前等待一个页面?
原文由 Nasrin Naher 发布,翻译遵循 CC BY-SA 4.0 许可协议
我是 Selenium 的新手。我在 Java 中使用 Selenium WebDriver。我正在使用 Eclipse 作为 IDE。我已经为登录页面编写了一些代码并且它运行成功。现在我想在成功登录后转到所需的页面,但我想等待一段时间再转换另一个页面。如何在加载另一个页面之前等待一个页面?
原文由 Nasrin Naher 发布,翻译遵循 CC BY-SA 4.0 许可协议
我真的会建议不要使用 Thread.sleep(NUMBER_OF_MILLS)。它不会稳定,你会遇到睡眠时间不够长的情况。
如果您只是等待 DOM 加载,那么触发页面加载的 WebDriver 事件将始终等待 DOM 加载,然后再返回控制权。
但是,如果在 DOM 之后使用 AJAX 更改 HTML,那么我建议您使用 WebDriverWait,等待已知事件发生(例如 Object 出现在 html 中,文本更改等)
如果你从这篇文章中拿走了一件事,那么请停止使用 Sleep!
原文由 Robbie Wareham 发布,翻译遵循 CC BY-SA 3.0 许可协议
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4.1k 阅读✓ 已解决
1 回答4.5k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
据我所知,有3种方式:
driver.manage().timeouts().implicitlyWait(A_GIVEN_NUMBER, TimeUnit.SECONDS);
WebDriverWait.until(CONDITION_THAT_FINDS_AN_ELEMENT);
更具体的代码如下:
Thread.sleep(NUMBER_OF_MILLIS);