(我是python的初学者)我有一个基类。继承基类,login.py运行没有任何问题。但是,当我运行Company_Management.py时,它给我错误TypeError:必须使用LoginPage实例作为第一个参数调用未绑定方法test_logn()(改为使用CompanyManagement实例)
我想要做的是,当我运行Company_Management.py时,它将首先执行test_logn(self)方法,然后点击xpath中的2个url。
import unittest
from selenium import webdriver
class Login(unittest.TestCase):
@classmethod
def setUpClass(inst):
inst.driver = webdriver.Chrome('/home/sohel/eclipse-workspace/chromedriver')
@classmethod
def tearDownClass(inst):
inst.driver.close()
if __name__ == '__main__':
unittest.main()
import base
import unittest
import time
class LoginPage(base.Login):
def test_logn(self):
driver =self.driver
driver.get("https://www.car.com/login?back_url=%2F")
driver.find_element_by_id("email").clear()
driver.find_element_by_id("email").send_keys("[email protected]")
if __name__ == '__main__':
unittest.main()
import base
import unittest
import time
import login
class CompanyManagement(base.Login):
def test_company(self):
driver =self.driver
driver.get("https://www.car.com/login?back_url=%2F")
Login_test = login.LoginPage.test_logn(self)
driver.find_element_by_xpath("//ec-ui-side-bar/div/div/ul/li[3]/a/span").click()
driver.find_element_by_xpath("//ec-ui-side-bar/div/div/ul/li[3]/ul/li/a/span").click()
if __name__ == '__main__':
unittest.main()
在这里,在Login_test = login.LoginPage.test_logn(self)
行中,self
代表它所属的类的对象,意味着CompanyManagement
的对象。这就是为什么你得到错误got CompanyManagement instance instead)
要调用test_logn
你需要类LoginPage
的对象。你可以这样称呼它:
from login import LoginPage
class CompanyManagement(base.Login):
def test_company(self):
driver =self.driver
driver.get("https://www.car.com/login?back_url=%2F")
Login_test = LoginPage().test_logn()