当前位置: 首页 > 编程笔记 >

使用python的Selenium中的隐式和显式等待之间有什么区别?

戚成礼
2023-03-14
本文向大家介绍使用python的Selenium中的隐式和显式等待之间有什么区别?,包括了使用python的Selenium中的隐式和显式等待之间有什么区别?的使用技巧和注意事项,需要的朋友参考一下

隐式等待和显式等待之间的区别如下所列-


隐式等待 显式等待
1 要求驱动程序等待特定时间,以使元素在页面的DOM上可用。
要求驾驶员等到满足特定条件。
2 这是全局等待,并应用于网页上的所有元素。
它不是全局等待,而是应用于特定方案。
3 它不需要您满足任何条件。
需要满足特定条件。一些预期条件包括-
    list-paddingleft-2">
  • title_contains

  • visible_of_element_located

  • present_of_element_located

  • title_is

  • 能见度

  • element_selection_state_to_be

  • present_of_all_elements_located

  • element_located_to_be_selected

  • alert_is_present

  • element_located_selection_state_to_b e

  • staleness_of

  • element_to_be_clickable

  • invisibility_of_element_located

  • frame_to_be_available_and_switch_to _it

  • text_to_be_present_in_element_value

  • text_to_be_present_in_element

  • element_to_be_selected

4 语法
driver.implicitly_wait(2)
语法
w = WebDriverWait(driver, 7)
w.until(expected_conditions.presence_of_ele
ment_located((By.ID, "Nhooo")))
5 它简单易实现。
与隐式等待相比,它的实现更为复杂。
6 这会影响执行速度,因为每个步骤都等待此等待,直到它获得要查找的元素为止。
因为它适用于页面的特定元素,所以它不会影响执行速度。
7 它不会捕获应用程序中的性能问题。
它可以捕获应用程序中的性能问题。
 类似资料:
  • 问题内容: Selenium WebDriver中有隐式和显式等待。它们之间有什么区别? 请分享有关Selenium WebDriver的知识。请显示带有隐式和显式等待的实时示例。 问题答案: 检查以下链接: -通过轮询DOM来指示Web驱动程序等待一段时间。声明隐式等待后,它将在Web驱动程序实例的整个生命周期中都可用。默认情况下,该值将为0。如果设置了更长的默认值,则该行为将根据浏览器/驱动程

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

  • 问题内容: 我想知道WebDriver等待超时和隐式等待超时之间的技术差异。 问题答案: 如文档中所述: 在内部设置将用于所有连续搜索的超时。如果找不到该元素,它将尝试在指定的时间内反复查找该元素。它仅执行此操作,不能强制执行其他任何操作- 它等待元素显示。 ,或者只是您用于特定搜索的一次计时器。它具有更大的可扩展性,意味着您可以将其设置为等待可能需要的任何条件。通常,您可以使用一些预构建的元素来

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

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

  • 创建驱动程序时,我已将隐式等待设置为10秒。当我希望使用显式等待时,是否必须将隐式等待设置为0? 以下是一个示例: 我必须做webDriver.manage()。超时()。秒);还是没有必要?