【问题标题】:How does Watir waits for page to load after selecting a value from list box?从列表框中选择值后,Watir 如何等待页面加载?
【发布时间】:2015-05-07 14:23:47
【问题描述】:

每当从列表框中选择值或单击按钮后发生页面加载时,watir 都会等待页面加载。但是在 watir webdriver 中,它不会在列表框选择的情况下等待。我对同一个应用程序同时使用了 watir 和 watir-webdriver。

谁能确认这种行为?知道为什么它存在于 watir 而不是 watir webdriver 吗?

更新:

@browser.text_field(:id,"name").set("Sivaguru")
@browser.select_list(:id,"Gender").select("Male")
@browser.button(:id,"Submit").click
@browser.text_field(:id,"comments").set("sample")

在上面的示例代码中,页面被加载了两次。一个是在选择之后,另一个是在单击按钮之后。

在 watir 的情况下,它默认等待页面加载。但是 watir webdriver 在按钮单击而不是选择的情况下等待。

由于我正在从 watir 迁移到 webdriver,因此我有兴趣在更改现有代码之前了解此行为。

【问题讨论】:

  • 这一切都取决于您正在测试的内容。如果页面似乎只是动态地重新加载页面的一部分,则您需要等待 AJAX 操作完成,然后再调用任何其他 WatirWebdriver 代码。使用选择列表会将您重定向到全新的页面还是页面的一部分?
  • 如果您发布最少的代码来重现问题,它将帮助其他人提供更好、更少投机性的答案。
  • @orde 我已经为我的问题提供了更多详细信息。如今,大多数人不会重新加载整个页面,而是使用 Ajax 动态更新页面的一部分。因此我无法找到示例应用程序。
  • @A.V.Leaf 这是一个旧应用程序,因此重新加载了整个页面。我们这里不使用 Ajax

标签: watir watir-webdriver


【解决方案1】:

我无法与 Watir 交谈,但 Watir-webdriver 有很多可用的方法可以让您等到元素存在/可见后再对其进行操作。我个人没有使用过 watir,但根据您的问题,我的假设是 watir 可能会负责等待您,而 watir-webdriver 为您提供更多控制权,但允许您故意控制 waiting

【讨论】:

  • 感谢您的回复。我检查了 watir webdriver 等待方法。如果 webdriver 确实故意删除了这种行为,那么正如你所建议的,我必须使用 webdriver 等待方法。
猜你喜欢
  • 1970-01-01
  • 2018-03-07
  • 1970-01-01
  • 1970-01-01
  • 2014-02-22
  • 1970-01-01
  • 2012-05-11
  • 1970-01-01
  • 2019-06-11
相关资源
最近更新 更多