添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

Python和Selenium。driver.implicitly_wait()和time.sleep()的区别

12 人关注

是的,我知道两者都是用来等待一些特定的时间。

Selenium:

driver.implicitly_wait(10)

Python:

import time
time.sleep(10)

这两者之间有什么区别吗?

1 个评论
替换代码0】会在那一行停止你的代码执行,但selenium implicitly_wait() 只是驱动程序的一个设置。你可以阅读更多 here
python
selenium
selenium-webdriver
sleep
implicitwait
Dipankar
Dipankar
发布于 2018-12-03
3 个回答
undetected Selenium
undetected Selenium
发布于 2018-12-03
已采纳
0 人赞同

time.sleep(secs)

time.sleep(secs) 暂停当前线程的执行,时间为给定的秒数。该参数可以是一个浮点数,以表示更精确的睡眠时间。实际的暂停时间可能比请求的时间要短,因为任何被捕获的信号都会在执行该信号的捕获例程后终止sleep()。另外,由于系统中其他活动的安排,暂停时间可能比请求的时间长一个任意的数量。

你可以在以下文章中找到详细的讨论 How to sleep webdriver in python for milliseconds

implicitly_wait(time_to_wait)。

implicitly_wait(time_to_wait)。 是指指定的时间量。 WebDriver 实例,即 driver 在搜索一个元素时,如果它没有立即出现在 HTML DOM 在试图找到一个或多个元素时,如果它们不是立即可用的,则以 SECONDS 为条件。默认设置是 0 这意味着 driver 在找到一个或多个元素的指令时,搜索开始并立即得到结果。

在这种情况下,在重新加载网页后,一个或多个元素可能/可能无法在即时搜索中找到。因此,你的 自动化脚本 可能面临这些例外情况中的任何一种。

  • NoSuchElementException
  • TimeoutException
  • ElementNotVisibleException
  • ElementNotSelectableException
  • ElementClickInterceptedException
  • ElementNotInteractableException
  • Hence we introduce 隐式等待(隐性等待(隐式等待(ImplicitWait . By introducing 隐式等待(隐性等待(隐式等待(ImplicitWait the driver will poll the DOM Tree 直到找到该元素的配置时间,然后抛出一个或多个 NoSuchElementException .到那时,你一直在寻找的元素或要素可能已经存在于 HTML DOM .因为在你的代码中,你已经设置了 隐式等待(隐性等待(隐式等待(ImplicitWait 价值为 10 seconds, the driver will poll the HTML DOM for 10 seconds.

    你可以在以下文章中找到详细的讨论 在Selenium中使用隐式等待

    Fiona Ngo
    Fiona Ngo
    发布于 2018-12-03
    0 人赞同
  • time.sleep(10) pauses code execution exactly 10 seconds.
  • driver.implicitly_wait(10) waits maximum 10 seconds for element's presence. If it is found after 2 seconds then code execution will be continued without wait for more 8 seconds.
  • shubham chawla
    shubham chawla
    发布于 2018-12-03
    0 人赞同

    When we use implicit wait in test script it is declared globally and it will automatically get applied to all the elements on that script and for example in java if you use implicit wait. --> driver. manage().timeouts().implictwait(10,timeunit.seconds);. this code will wait for the element to be present in DOM until then it will wait once element gets visible execution will get continue. during the time of hold script execution is stopped.