python和selenium webdriver等到时间等于特定

时间:2018-01-22 20:44:17

标签: python python-3.x selenium selenium-webdriver

我是新用户python 3

我有一个通过python 3进行的项目网络抓取,我必须等到登录到web目标后的时间是08:22:00 PM。

我有项目,没有任何问题,但我希望导入只等到特定时间再继续。

您有任何想法,或者您能告诉我任何有关该代码的代码,例如:

WebDriverWait(driver, 10).until() # for example time=08:22:00 pm continue

感谢

1 个答案:

答案 0 :(得分:1)

如果查看WebDriverWait的API文档,则定义为:

class selenium.webdriver.support.wait.WebDriverWait(driver, timeout, poll_frequency=0.5, ignored_exceptions=None)
Constructor, takes a WebDriver instance and timeout in seconds.

此外,直到方法定义为:

until(method, message='')
Calls the method provided with the driver as an argument until the return value is not False.

因此 WebDriverWait 构造函数和 until 方法都与 WebDriver 实例相关联广泛用于与浏览器客户端进行通信。因此, WebDriver 可能无法帮助您。

说过Python可以获得不同的解决方案。

解决方案#1

您可以在一个简单的循环中将 Python timedatetime模块导入sleep(),如下所示:

import datetime
import time

# datetime(year, month, day[, hour[, minute[, second[, microsecond[,tzinfo]]]]])
# The year, month and day arguments are required. tzinfo may be None.
target_time = datetime.datetime(2018, 1, 23, 13, 2, 00)  # 13:02 pm on 23 January 2018
while datetime.datetime.now() < target_time:
    time.sleep(10)
print("It is 13:02 pm, 2018. Resuming Test Execution")

解决方案#2

您可以从 Python Timer模块中导入threading对象,以引导timer,如下所示:

from threading import Timer

def hello():
    print("Hello World")

t = Timer(10.0, hello)
t.start()  # after 30 seconds, "Hello World" will be printed

琐事

您还可以使用事件调度程序sched来实现通用事件调度程序:

class sched.scheduler(timefunc=time.monotonic, delayfunc=time.sleep)