当前位置: 首页 > 知识库问答 >
问题:

在Selenium中,使用显式等待时是否需要禁用隐式等待?

拓拔辰钊
2023-03-14

创建驱动程序时,我已将隐式等待设置为10秒。当我希望使用显式等待时,是否必须将隐式等待设置为0?

以下是一个示例:

WebDriver webDriver = new FirefoxDriver();
webDriver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
//Now I want to use Explicit wait

我必须做webDriver.manage()。超时()。秒);还是没有必要?

WebDriverWait wait = new WebDriverWait(webDriver, WAIT_FOR_TIMEOUT_SEC);
WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id(id)));

共有1个答案

章阳波
2023-03-14

没有必要将隐式等待时间重新声明回零。

原因:当您说要使用显式等待时,这只意味着您的隐式等待时间不足以等待元素出现,因此您在特定操作后声明显式等待。

何时应该使用隐式等待:隐式等待是告诉selenium在执行每个操作后等待特定时间段的一种方法。这有助于同步您执行的大多数操作。给出的时间越长,测试执行的速度就越慢。更多关于隐式等待

何时应使用显式等待:当特定操作需要时间执行或加载到DOM时,将使用显式等待。这并没有告诉selenium在每个操作之后等待特定的时间,而是告诉selenium在执行特定操作之前等待一段时间。更多关于显式等待的信息

来自Selenium网站的警告:不要混合隐式和显式等待。这样做可能会导致不可预测的等待时间。例如,将隐式等待设置为10秒,显式等待设置为15秒,可能会导致20秒后出现超时。

希望有帮助。

 类似资料:
  • 问题内容: 我在用: 但是对于以下元素它仍然连续失败 我添加了等待代码: 隐式等待是否应该等到找到一个元素后再进行处理?如果我使用而不是我添加的代码,还会更好吗? 问题答案: TL; DR:始终使用显式等待。忘记隐式等待的存在。 以下是显式等待与隐式等待之间的区别的简要概述: 显式等待: 记录和定义的行为。 在硒的本地部分运行(以你的代码语言显示)。 可以在你能想到的任何条件下工作。 返回成功或超

  • 问题内容: 我是初学者。我了解基本等待的内容,但是我对互联网上的不同教程如何放置并进行解释感到困惑。例如,在下面的代码中,将其放置在加载URL之前。因此,是否只是等待URL加载或查找元素或两者兼而有之?的确,如果我在try块中使用一次隐式等待,它是否适用于我在代码中执行的每个元素搜索? 问题答案: 隐式等待 ImplicitWait按照该Java文档是指定的时间量 webdriver的 情况下,即

  • 我如何用一个显式的替换这个隐式的等待呢? driver=新ChromeDriver(功能); driver.manage().DeleteAllCookies();

  • 我正在尝试自动化基于共享点的应用程序,它有时会很慢。在下面的示例中,我试图将密码输入包装成显式等待。目前,Selenium以快速运行测试,导致无法执行操作。 如何将密码部分包装成硒显式方式?

  • 我是初学者。我了解Wait的基本功能,但我对互联网上不同的教程如何放置和解释它感到困惑。例如,在下面的代码中,它是在加载URL之前放置的。那么,是只等待加载URL,还是等待查找元素,或者两者都是?如果我在try块中使用隐式等待一次,它将适用于我在代码中执行的每个元素搜索,这是真的吗?

  • 问题内容: 我正在学习Java Maven Selenium。我想要在Selenium中使用这样的东西。 打开网站(例如https://www.facebook.com) 单击登录的电子邮件字段 等待20秒 输入我的电子邮件 这是我的简单代码: 该代码不起作用。它只会打开Facebook,单击电子邮件字段并输入我的电子邮件ID,而不是等待10秒钟才输入我的电子邮件。 问题答案: 并且无法正常工作,