AttributeError: 'ClassName' object has no attribute 'driver' on Appium Python
AttributeError: 'ClassName' object has no attribute 'driver' on Appium Python
我正在使用这个主体(desired_caps 在配置文件中设置正确)
无论我做什么,我都会收到“AttributeError: 'ClassName' object has no attribute 'driver'”或类似错误 - 没有 find_element_by_xpath 属性或其他任何错误。
你有什么建议吗?我在做与讲座相同的方式,也许与 appium + python 设置有关?
import unittest
from appium import webdriver
import time
import tracemalloc
tracemalloc.start()
from config import desired_caps
# self = webdriver
# self.driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
class BaseTest(unittest.TestCase):
def test_testcase1(self):
self.driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
def test_credentials(self):
email = self.driver.find_element_by_xpath("proper Xpath")
email.send_keys("Test")
save = self.driver.find_element_by_link_text("Log In")
save.click()
def tearDown(self):
self.driver.quit()
if __name__ == '__main__':
suite = unittest.TestLoader().loadTestsFromTestCase(BaseTest)
unittest.TextTestRunner(verbosity=3).run(suite)
您需要在名为 setUp()
的函数中创建您的驱动程序。单元测试套件执行有点像这样。
setUp()
run test_testcase1()
tearDown()
setUp()
run test_credentials()
teardown()
...etc...
如果驱动程序 driver
不是在 setup()
中创建的,其他测试将不会知道它。除非你在每一个测试中都做 driver
。您需要的任何其他测试变量也是如此。
这样每个测试都是相互独立的,每个测试都有一个新的开始。
我正在使用这个主体(desired_caps 在配置文件中设置正确) 无论我做什么,我都会收到“AttributeError: 'ClassName' object has no attribute 'driver'”或类似错误 - 没有 find_element_by_xpath 属性或其他任何错误。 你有什么建议吗?我在做与讲座相同的方式,也许与 appium + python 设置有关?
import unittest
from appium import webdriver
import time
import tracemalloc
tracemalloc.start()
from config import desired_caps
# self = webdriver
# self.driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
class BaseTest(unittest.TestCase):
def test_testcase1(self):
self.driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
def test_credentials(self):
email = self.driver.find_element_by_xpath("proper Xpath")
email.send_keys("Test")
save = self.driver.find_element_by_link_text("Log In")
save.click()
def tearDown(self):
self.driver.quit()
if __name__ == '__main__':
suite = unittest.TestLoader().loadTestsFromTestCase(BaseTest)
unittest.TextTestRunner(verbosity=3).run(suite)
您需要在名为 setUp()
的函数中创建您的驱动程序。单元测试套件执行有点像这样。
setUp()
run test_testcase1()
tearDown()
setUp()
run test_credentials()
teardown()
...etc...
如果驱动程序 driver
不是在 setup()
中创建的,其他测试将不会知道它。除非你在每一个测试中都做 driver
。您需要的任何其他测试变量也是如此。
这样每个测试都是相互独立的,每个测试都有一个新的开始。