web自动化报错:'TestUnit1' object has no attribute 'driver',大神帮忙调试调试。
代码如下:
from time import sleep ... testcase_methods = list(testcase_class. .keys()) ... wd.get('
from time import sleep
from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.common.by import By
import unittest
class MyTestLoader(unittest.TestLoader):
def getTestCaseNames(self, testcase_class):
# 调用父类的获取“测试方法”函数
test_names = super().getTestCaseNames(testcase_class)
# 拿到测试方法list
testcase_methods = list(testcase_class.__dict__.keys())
# 根据list的索引对testcase_methods进行排序
test_names.sort(key=testcase_methods.index)
# 返回测试方法名称
return test_names
'''访问目标网址'''
wd = webdriver.Chrome() # 创建一个webdriver的实例对象
wd.get('http://admintest.sv1.k9s.run:2271/platform-framework/index.html')
# wd.maximize_window()
class TestUnit1(unittest.TestCase):
def setUp(self):
"""登录系统"""
element = self.driver.find_element(By.XPATH, '//input[@placeholder="账号"]')
element.send_keys('ceshi')
element = self.driver.find_element(By.XPATH, '//input[@placeholder="密码"]')
element.send_keys('ceshi')
set_elem = self.driver.find_element(By.XPATH, '//button[@type="button"]')
ActionChains(self).click(set_elem).perform()
sleep(2)
# 点击编辑商品
self.driver.find_element(By.XPATH, '//span[contains(text(),"编辑商品")]').click()
sleep(2)
# 点击产品设置
self.driver.find_element(By.XPATH, '//body/div[@id="mainApp"]/nav[1]/div[2]/div[1]/ul[1]/li[4]/ul[1]/li[2]/a[1]').click()
name = self.driver.find_element(By.XPATH, '//iframe[@name="iframe15"]')
self.driver.switch_to.frame(name)
def test_added(self):
"""新增产品设置"""
# 点击新增
self.driver.find_element(By.XPATH, '//body[1]/div[1]/div[1]/div[1]/div[2]/button[1]/span[1]/i[1]').click()
sleep(1)
# 编辑新增的产品信息
self.driver.find_element(By.XPATH, '//input[@class="ivu-select-input"]').click()
self.driver.find_element(By.XPATH, '//li[contains(text(),"大保健")]').click()
sleep(1)
self.driver.find_element(By.XPATH,
'//body[1]/div[1]/div[2]/div[2]/form[1]/div[2]/div[1]/div[1]/div[1]/input[2]').click()
self.driver.find_element(By.XPATH, '//li[contains(text(),"重量")]').click()
self.driver.find_element(By.XPATH, '//textarea[@class="ivu-input"]').send_keys('重量为2kg')
sleep(2)
self.driver.find_element(By.XPATH, '//span[contains(text(),"提交")]').click()
# 弹出确认框框
self.driver.find_element(By.XPATH, '//a[contains(text(),"确定")]').click()
sleep(1)
def test_madify(self):
"""修改产品设置"""
# 勾选其中一个产品设置
self.driver.find_element(By.XPATH, '//tbody/tr[@id="65"]/td[2]').click()
# 点击修改
self.driver.find_element(By.XPATH, '//button[@class="ivu-btn ivu-btn-warning"]').click()
sleep(1)
# 编辑修改信息
username = self.driver.find_element(By.XPATH, '//textarea[@class="ivu-input"]')
username.send_keys('web自动化')
self.driver.find_element(By.XPATH, '//span[contains(text(),"提交")]').click()
sleep(2)
# 弹出确认弹框
self.driver.find_element(By.XPATH, '//a[contains(text(),"确定")]').click()
sleep(2)
def test_delete(self):
"""删除产品设置"""
# 勾选其中一个产品设置
self.driver.find_element(By.XPATH, '//tbody/tr[@id="60"]/td[2]').click()
# 点击删除
self.driver.find_element(By.XPATH, '//body[1]/div[1]/div[1]/div[1]/div[2]/button[3]/span[1]/i[1]').click()
# 弹出删除确认弹框
self.driver.find_element(By.XPATH, '//a[contains(text(),"确定")]').click()
def tearDowm(self):
driver.switch_to.default_content()
sleep(2)
wd.driver.quit()
if __name__ == "__main__":
unittest.main(testLoader=MyTestLoader())
你把报错复制出来发给我看一下
你这儿testcase没有传driver进去,你继承的是unittest.TestCase,而你driver用的是self.driver, 但是unittest.TestCase里面是不提供的driver, 要么在driver前面不要加self, 要么在TestUnit1这个类下面定义一下driver,可以写 driver = driver