【问题标题】:Adding time delay to selenium向硒添加时间延迟
【发布时间】:2018-01-02 21:42:02
【问题描述】:

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

    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)
    

    【讨论】:

      猜你喜欢
      • 2017-10-29
      • 1970-01-01
      • 2015-09-07
      • 1970-01-01
      • 2015-06-28
      • 2016-04-19
      • 1970-01-01
      • 2019-12-15
      • 2011-09-20
      相关资源
      最近更新 更多