增加硒的时间延迟

问题描述 投票:2回答:1

我想包装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'

我究竟做错了什么?

python selenium oop
1个回答
2
投票

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)
© www.soinside.com 2019 - 2024. All rights reserved.