硒 wait.until 方法
Selenium wait.until method
各位程序员大家好,我有一个简单的问题。
是
wait = WebDriverWait(browser, 10)
相当于
time.sleep(10)
?
我正在开发这个 selenium 应用程序,有时服务器流量非常大,导致从一个页面移动到另一个页面时加载时间不同。我发现 time.sleep(N)
效率不高,但如果我使用 wait.until
EC
块,代码会在满足条件后执行吗?
如果使用 wait = WebDriverWait(browser, 60)
并且页面在 3 秒内加载,这不会浪费时间吗?
time.sleep(10)
的硬编码暂停和wait = WebDriverWait(browser, 10)
的显式等待绝对不一样。
time.sleep(10)
的硬编码暂停将无条件地暂停代码执行 10 秒。
wait = WebDriverWait(browser, 10)
的显式等待将轮询网页,直到满足指定条件。一旦满足条件,您的代码将立即继续执行。
例如,如果您定义了显式等待,直到 div.selected
所在的元素可见,Selenium 将每隔某个预定义的时间轮询 DOM,假设每 100 毫秒一次,当它发现此类元素可见时 wait
将完成,您的代码将继续执行。
如果条件未达到定义的超时,在上面的示例中为 10 秒,Selenium 将抛出 TimeoutException
异常。
有很多关于这个的教程,例如here
time.sleep(10)
和 wait = WebDriverWait(browser, 10)
都是 显式等待。
主要区别在于
time.sleep(10)
是最糟糕的一种显式等待。
意思是暂停程序执行定义的时间段,在本例中,10 secs
.
而 WebDriverWait
将每隔 500 毫秒查找 EC
条件 如果找到,则 return 如果找不到,则一次又一次地重试,直到发生超时然后扔
TimeOutException
这又是一个一般性错误。
此外,
Since explicit waits allow you to wait for a condition to occur, they
make a good fit for synchronising
the state between the browser and
its DOM, and your WebDriver script.
这是官方的 docs 显式等待。
各位程序员大家好,我有一个简单的问题。
是
wait = WebDriverWait(browser, 10)
相当于
time.sleep(10)
?
我正在开发这个 selenium 应用程序,有时服务器流量非常大,导致从一个页面移动到另一个页面时加载时间不同。我发现 time.sleep(N)
效率不高,但如果我使用 wait.until
EC
块,代码会在满足条件后执行吗?
如果使用 wait = WebDriverWait(browser, 60)
并且页面在 3 秒内加载,这不会浪费时间吗?
time.sleep(10)
的硬编码暂停和wait = WebDriverWait(browser, 10)
的显式等待绝对不一样。
time.sleep(10)
的硬编码暂停将无条件地暂停代码执行 10 秒。
wait = WebDriverWait(browser, 10)
的显式等待将轮询网页,直到满足指定条件。一旦满足条件,您的代码将立即继续执行。
例如,如果您定义了显式等待,直到 div.selected
所在的元素可见,Selenium 将每隔某个预定义的时间轮询 DOM,假设每 100 毫秒一次,当它发现此类元素可见时 wait
将完成,您的代码将继续执行。
如果条件未达到定义的超时,在上面的示例中为 10 秒,Selenium 将抛出 TimeoutException
异常。
有很多关于这个的教程,例如here
time.sleep(10)
和 wait = WebDriverWait(browser, 10)
都是 显式等待。
主要区别在于
time.sleep(10)
是最糟糕的一种显式等待。
意思是暂停程序执行定义的时间段,在本例中,10 secs
.
而 WebDriverWait
将每隔 500 毫秒查找 EC
条件 如果找到,则 return 如果找不到,则一次又一次地重试,直到发生超时然后扔
TimeOutException
这又是一个一般性错误。
此外,
Since explicit waits allow you to wait for a condition to occur, they make a good fit for
synchronising
the state between the browser and its DOM, and your WebDriver script.
这是官方的 docs 显式等待。