我正在使用selenium与python进行自动化。下面是我创建的两个.py文件:
Browser.py:
from selenium import webdriver
class Browser:
def GoTo(self, url):
browser.get(url)
browser = webdriver.Firefox()
Login.py:
import unittest
from Browser import *
class Test(unittest.TestCase):
def setUp(self):
pass
def test_Can_Login(self):
browser.GoTo("http://www.google.co.in")
if __name__ == "__main__":
unittest.main()
当我运行Login.py时,Firefox打开但什么也不做。它抛出一个错误:
"Traceback (most recent call last):
File "/media/Pinku/Tests/src/Login.py", line 10, in test_Can_Login
browser.GoTo("http://www.google.co.in")
AttributeError: 'WebDriver' object has no attribute 'GoTo'"
我是不是忽略了什么?在努力寻找错误之后发布这篇文章。请帮助!
这是因为您的browser
是Firefox
的实例,而不是您定义的类。
class Test(unittest.TestCase):
def setUp(self):
self.browser = Browser()
def test_Can_Login(self):
self.browser.GoTo("http://www.google.co.in")
然而,如果你想包装Firefox
的功能,你应该考虑子类化它,而不是使用全局变量。
class Browser(webdriver.Firefox):
def GoTo(self, url):
self.get(url)