python+webdriver+selenium 取不到driver属性值

一共两段程序,baidu_main.py和public.py,baidu_main.py中已经定义属性driver = webdriver.Firefox(),但是在public.py中,无法正常读取driver的属性值,这是什么原因?我已经在baidu_main.py中写了构造函数啊?

baidu_main.py代码如下:

from selenium import webdriver
from public import Login
class Logintest():
    def __init__(self):
        self.driver = webdriver.Firefox()
        self.driver.get("https://segmentfault.com/")
    def test_admin_login(self):
        username = 'XXXXXX'
        password = 'XXXXXX'
    Login().user_login(self.driver,username,password)
    Login().user_logout(self,driver)
abc = Logintest()
abc.test_admin_login()

public.py代码如下:

from selenium import webdriver
import time
class Login():
    def user_login(self, driver, username, password):
        try:
            self.driver.find_element_by_xpath('/html/body/div[3]/nav/div[2]/div[2]/ul/li/a[1]').click()  # 点击登录
            self.driver.find_element_by_xpath('/html/body/div[6]/div/div/div[2]/div/div/div/form/div[2]/input').send_keys(
        username)  # 输入用户名
            self.driver.find_element_by_xpath('/html/body/div[6]/div/div/div[2]/div/div/div/form/div[3]/input').send_keys(
        password)  # 输入密码
            self.driver.find_element_by_xpath(
        '/html/body/div[6]/div/div/div[2]/div/div/div/form/div[4]/button').click()  # 点击登录
        except Exception:
            print('No found everything, sorry2!')
        else:
            time.sleep(10)
    def user_logout(self, driver):
        self.driver.quit()
阅读 4.5k
2 个回答

基础有待加强。

举个例子

class LoginTest(object):
    def __init__(self):
        self.driver = ...
        
    def test_xxx(self):
        Login().call_me(self.driver)
        # 不是 
        # Login().call_me(self, driver)
        
        
class Login(object):
    def call_me(self, driver):
        driver.xxx(...)

public的Login中,self.driver应该是driver,你用self.driver的话就没有参数中的driver什么事了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题