如何在python中的两个动作之间设置延迟?

时间:2019-04-14 21:46:53

标签: python selenium

程序的工作方式如下:

  1. 我通过名称找到了一个元素
  2. 我单击该元素,它使3中的元素出现
  3. 我通过链接文本找到了另一个元素
  4. 我点击它。

我遇到的问题是3发生得太快,程序无法找到该元素。我认为我需要放置一个延迟或3中的某个内容,以便在找到该元素时激活4。如果有帮助,我也会使用硒。

我无法尝试任何事情,因为我不知道该做什么,因为我对此很陌生。

代码如下:

atc = browser.find_element_by_name('commit')
atc.click()
checkout = browser.find_element_by_link_text('checkout now')
checkout.click()

3 个答案:

答案 0 :(得分:1)

在此已多次询问并回答。你可以做

import time
time.sleep(5)   # Delays for 5 seconds.

取自(How can I make a time delay in Python?

答案 1 :(得分:0)

也许您可以使用Timehttps://docs.python.org/2/library/time.html)库:

import time
atc = browser.find_element_by_name('commit')
atc.click()
time.sleep(5)
checkout = browser.find_element_by_link_text('checkout now')
checkout.click()

这在步骤3和4之间施加了5毫秒的延迟。

答案 2 :(得分:0)

您的问题:

  

“我认为我需要在3中添加一个延迟或某种东西,以便在找到该元素时激活4。”

我认为正确的选择是第二个选择:“或某物”。您应该学习如何等待元素,并引用Selenium Wait docs

  

如果DOM中尚不存在某个元素,则定位函数将引发ElementNotVisibleException异常。使用等待,我们可以解决此问题。等待使执行的动作之间有些松懈-主要是定位元素或对该元素进行的任何其他操作。

此网站上的示例:https://stackoverflow.com/a/25851841