gpt4 book ai didi

java - pageLoadTimeout 不适用于带有 PageObjects 的 Firefox

转载 作者:行者123 更新时间:2023-12-01 22:54:55 25 4
gpt4 key购买 nike

我使用 Selenium WebDriver 来测试网站。我有 PageObjects 来表示 LoginPageHomePageManagementPage。我的测试首先登录,返回一个 HomePage,然后单击一个返回 ManagementPage 的按钮。然后它会检查一堆内容,单击返回主页的链接,然后单击注销链接。

这一切在 Chrome 上都可以正常工作,根本不需要使用 pageLoadTimeout。但是,在 Firefox 中,当我尝试单击注销链接时,出现 NoSuchElementException 。我假设这是因为尝试单击注销按钮时页面尚未完全加载。因此,在创建驱动程序之后,我在测试开始时放置了 driver.manage().timeouts().pageLoadTimeout(5000, TimeUnit.MILLISECONDS) 。我仍然遇到同样的错误。将超时更改为 5 毫秒 证明超时有效,因为页面未加载并且抛出 TimeOutException

如果我将 driver.manage().timeouts().pageLoadTimeout(5000, TimeUnit.MILLISECONDS) 移动到 HomePage 的构造函数,那么一切正常尽管。因此,我可以通过为每个 PageObject 设置超时来解决我的问题。

我希望只能为每个驱动程序设置一次,这是我从 this question 收集到的信息。 。但是this question说 pageLoadTimeout 不适用于点击链接,这让我很困惑,因为我确实为我工作,但前提是我为每个 PageObject 设置它。

我还有什么事情要做吗?或者当驱动程序传递给 PageObject 时超时是否会重置?我看不出这是如何发生的,因为我在构造函数中所做的就是:

this.driver = driver;

最佳答案

pageLoadTimeout设置在 implicitlyWait 期间抛出错误之前等待页面加载完成的时间量指定驱动程序在搜索未立即存在的元素时应等待的时间。
此外,您不需要为每个页面设置此值,您需要为每个驱动程序设置一次。

关于java - pageLoadTimeout 不适用于带有 PageObjects 的 Firefox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24237789/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com