gpt4 book ai didi

python - 使用 selenium webdriver 作为基类 python

转载 作者:太空狗 更新时间:2023-10-29 22:26:18 25 4
gpt4 key购买 nike

我为这个搜索了一段时间,很惊讶我找不到任何东西,也许是因为它很简单。我用 python 编程大约 3 个月,使用 selenium webdriver 进行自动化测试。我认为让一个类继承 self 的 webdriver 类以向其添加更多功能会很方便。

    from selenium import webdriver

class myPage(webdriver):

def __init__(self):
super(myPage, self).__init__()

def set_up(self):
#doStuff...

但是当我这样做时我得到了错误>>>

    File "c:\Users\me\...\myProgram.py", line 6, in <module>
class myPage(webdriver):
TypeError: module.__init__() takes at most 2 arguments (3 given)

当我创建 myPage 对象时,代码是...

    from myProgram import myPage
class Test():
def do(self):
self.browser = myPage.Firefox()

所以它通过并执行 self.browser = myPage.Firefox() 行,当它运行 .__init__() 时,它以某种方式给了它三个参数,我不确定它们在哪里来自。我显然遗漏了一些东西,因为继承并不难。感谢您的帮助

最佳答案

你必须改变:

class myPage(webdriver)

收件人:

class myPage(webdriver.Firefox)

然而,这会导致您无法选择要在其上运行的浏览器。这是因为 webdriver 实际上不是一个类,而是一个包(我相信)。当您调用类似:webdriver.Firefox() 时,它实际上是 Firefox 类的一个实例,而不是 webdriver 类。为了得到你想要的东西,你最好做这样的事情:

from selenium import webdriver

class myPage(webdriver.Firefox, webdriver.Chrome, webdriver.Ie):
def __init__(self, browser):
if browser.lower() == "ie":
webdriver.Ie.__init__(self)
elif browser.lower() == "chrome":
webdriver.Chrome.__init__(self)
else:
webdriver.Firefox.__init__(self)

关于python - 使用 selenium webdriver 作为基类 python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24001427/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com