import HTMLTestRunner import io import time import unittest from grapheme.grapheme_property_group import value from selenium import webdriver from selenium.webdriver.common.by import By # 首先使用configparser库读取配置文件config.ini中的路径data_dir import configparser config = configparser.ConfigParser() config.read('config.ini',encoding='utf-8') # 读取配置文件中的路径 data_dir = config['DEFAULT']['date_dir'] # 在路径下创建文件夹 import os folder_path = os.path.join(data_dir,'new_folder') # os.makedirs方法的exist_ok参数设置为True,表示如果文件夹已经存在就不会报错 os.makedirs(folder_path, exist_ok=True) class TestMyWebdriver(unittest.TestCase): def test_title(self): self.driver = webdriver.Chrome() def test_gtr(self,date_dir): self.driver = webdriver.Chrome() self.outputBuffer = io.BytesIO() self.driver.get("DEFAULT",date_dir) self.assertEqual(self.driver.title, "Vuetify-Lux") # 创建账号 self.driver.find_element(By.XPATH,"/html/body/div[1]/div/div/div[1]/div[2]/div[1]/div/v-card-texts/form/div[3]/div/a").click() time.sleep(1) # 输入手机号 self.driver.find_element(By.CLASS_NAME,"v-field__input").send_keys("13732237096") time.sleep(1) # 点击获取验证码 self.driver.find_element(By.XPATH,"/html/body/div[1]/div/div/div[1]/div[2]/div[1]/div[1]/div[3]/form/div[1]/div[2]/div[2]").click() time.sleep(1) # 输入验证码 self.driver.find_element(By.NAME,"vercode").send_keys("111111") time.sleep(1) # 输入密码 self.driver.find_element(By.XPATH,"/html/body/div[1]/div/div/div[1]/div[2]/div[1]/div[1]/div[3]/form/div[2]/div[1]/div/div[3]/input").send_keys("zxcvbnm123") time.sleep(1) # 点击空白处 self.driver.find_element(By.CLASS_NAME,"v-input__details").click() time.sleep(1) # 点击验证 self.driver.find_element(By.XPATH,"/html/body/div[1]/div/div/div[1]/div[2]/div[1]/div[1]/div[3]/form/button").click() time.sleep(1) def tearDown(self): self.driver.quit() browser = self.get_config('browserType','browserName') if __name__ == '__main__': suite = unittest.TestSuite() suite.addTest(TestMyWebdriver('test_title')) suite.addTest(TestMyWebdriver('test_gtr')) with open('test_report.html', 'wb') as f: runner = HTMLTestRunner.HTMLTestRunner(stream=f) runner.run(suite)
时间: 2024-04-23 20:24:16 浏览: 167
这段代码定义了一个名为 TestMyWebdriver 的测试类,其中包含了两个测试方法 test_title 和 test_gtr,分别用于测试页面标题和页面功能。这些测试方法使用了 Selenium 的 webdriver 对象,通过浏览器模拟用户操作,进行自动化测试。其中,test_gtr 方法还使用了 io 库的 BytesIO 对象和 configparser 库读取配置文件,对测试数据进行处理。在测试完成后,使用 HTMLTestRunner 库生成测试报告。这些测试方法通过添加到 TestSuite 中来进行执行。最后,使用 with 语句打开文件并将测试结果传递给 HTMLTestRunner 对象,生成测试报告文件 test_report.html。
相关问题
import HTMLTestRunner import io import time import unittest from grapheme.grapheme_property_group import value from selenium import webdriver from selenium.webdriver.common.by import By # 首先使用configparser库读取配置文件config.ini中的路径data_dir import configparser
这是一段 Python 代码,使用了多个库和模块,包括 HTMLTestRunner、io、time、unittest、selenium 和 configparser。其中,HTMLTestRunner 是一个测试报告生成工具,io 库用于进行输入输出操作,time 库用于时间相关操作,unittest 库用于编写单元测试,selenium 库用于自动化测试,configparser 库用于读取配置文件。这段代码还导入了 grapheme.grapheme_property_group.value 和 selenium.webdriver.common.by 中的 By 类。
import unittest from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys import time class forTest(unittest.TestCase): # 测试用例初始化 # 打开谷歌浏览器,并进入百度 def setUp(self) -> None: self.driver = webdriver.Chrome() self.driver.get('http://www.baidu.com') # 测试用例释放 # 等待 3s,关闭浏览器 def tearDown(self) -> None: time.sleep(3) self.driver.quit() # 输入‘高考',并点击搜索 def test_1(self): pass self.driver.find_element(By.ID, 'kw').send_keys('高考') self.driver.find_element_by_id('su').click() # 输入‘百度翻译',并点击搜索 def test_2(self): pass self.driver.find_element(By.ID, 'kw').send_keys('百度翻译') self.driver.find_element_by_id('su').click() if __name__ == '__main__': unittest.main()
根据您提供的代码,可能是由于在 `test_1` 和 `test_2` 方法中,`pass` 语句放置在了 `self.driver.find_element` 方法之前,导致这两个方法没有实际执行任何操作。因此,您需要将 `pass` 语句放置在 `def` 语句之前,或者直接删除 `pass` 语句。
修改后的代码如下:
```
import unittest
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import time
class forTest(unittest.TestCase):
# 测试用例初始化
# 打开谷歌浏览器,并进入百度
def setUp(self) -> None:
self.driver = webdriver.Chrome()
self.driver.get('http://www.baidu.com')
# 测试用例释放
# 等待 3s,关闭浏览器
def tearDown(self) -> None:
time.sleep(3)
self.driver.quit()
# 输入‘高考',并点击搜索
def test_1(self):
self.driver.find_element(By.ID, 'kw').send_keys('高考')
self.driver.find_element_by_id('su').click()
# 输入‘百度翻译',并点击搜索
def test_2(self):
self.driver.find_element(By.ID, 'kw').send_keys('百度翻译')
self.driver.find_element_by_id('su').click()
if __name__ == '__main__':
unittest.main()
```
这样修改后,您可以运行这个测试用例,分别进行两个测试方法,分别搜索高考和百度翻译。