我想包装webdriver以使其在每次操作后等待。我有以下功能,我认为可能会起作用(我正在测试打印功能):
def sleep_driver(function):
def wrapper(*args, **kwargs):
print("sleeping")
return function(*args, **kwargs)
return wrapper
但是,当我跑:
from selenium import webdriver as wd
webdriver = sleep_driver(wd)
options = webdriver.ChromeOptions()
我明白了:
File "myfile.py", line 204, in <module>
options = webdriver.ChromeOptions()
AttributeError: 'function' object has no attribute 'ChromeOptions'
我究竟做错了什么?
webdriver
是一个模块,如果你想在Python中“装饰”一个模块,有一些注意事项:
我会改为子类化驱动程序并覆盖execute()
method,它实际上负责发送webdriver命令:
class MyChromeDriver(webdriver.Chrome):
def execute(self, driver_command, params=None):
# add a delay here
return super(MyChromeDriver, self).execute(driver_command, params=params)