TypeError:必须使用LoginPage实例作为第一个参数调用未绑定方法test_logn()(改为使用CompanyManagement实例)

问题描述 投票:1回答:1

(我是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() 

login.朋友

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()

company_management.朋友

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()
python selenium selenium-webdriver selenium-chromedriver
1个回答
0
投票

在这里,在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()
© www.soinside.com 2019 - 2024. All rights reserved.