import time from selenium.webdriver.common.by import By from selenium import webdriver class add(unittest.TestCase): def setUp(self) -> None: self.driver = webdriver.Chrome def testBaidu(self): url = "https://www.baidu.com/" self.driver.get(url) time.sleep(5) self.driver.find_element(By.ID, 'kw').send_keys('python') self.driver.find_element(By.ID, 'su').click() # driver.find_element_by_xpath('//input[@id="su"]') time.sleep(5) assert "python" in self.driver.page_source, "页面不存在要搜索的关键字!" def tearDown(self) -> None: self.driver.quit() if __name__ == '__main__': unittest.main()
时间: 2024-04-11 12:32:57 浏览: 349
这段代码是使用Selenium和unittest库编写的一个简单的测试用例,用于在百度搜索框中输入关键字'python'并点击搜索按钮,然后检查页面中是否包含关键字'python'。
在代码中的setUp()方法中,使用webdriver.Chrome创建了一个Chrome浏览器的实例。但是,在实例化Chrome浏览器时,缺少了括号,应该是self.driver = webdriver.Chrome()。
另外,在测试方法testBaidu()中,使用了By.ID定位方式来定位搜索框和搜索按钮,但是缺少了find_element()方法的调用,应该是self.driver.find_element(By.ID, 'kw')和self.driver.find_element(By.ID, 'su')。
最后,在tearDown()方法中,调用了self.driver.quit()来关闭浏览器。
如果想要运行这个测试用例,需要安装Selenium库,并下载对应版本的Chrome驱动,并将其路径添加到系统环境变量中。
相关问题
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()
```
这样修改后,您可以运行这个测试用例,分别进行两个测试方法,分别搜索高考和百度翻译。
import HTMLTestRunner import time import unittest from selenium import webdriver from selenium.webdriver.common.by import By from 'E:\我的工作\控制台\src\test\python\auth' import config import os def mkdir(url): os.makedirs(os.path.join('E:\我的工作\控制台\src\test\python\auth',url), exist_ok=True) # folder = os.path.join(date_dir) class TestMyWebdriver(unittest.TestCase): def test_title(self): self.driver = webdriver.Chrome() def test_gtr(self): self.driver = webdriver.Chrome() # self.outputBuffer = io.BytesIO() # DEFAULT是配置文件中的一个配置节 self.driver.get(config.config.get('url')) self.assertEqual(self.driver.title, "Vuetify-Lux")这段代码有何问题
这段代码缺少了结束语句,即缺少了 `if __name__ == '__main__': unittest.main(testRunner=HTMLTestRunner.HTMLTestRunner(output='report'))) `。此外,在 `from 'E:\我的工作\控制台\src\test\python\auth' import config` 这一行,文件路径中的反斜杠应该改为正斜杠。最后,在 `test_title` 和 `test_gtr` 函数中,应该添加 `self.driver.quit()` 以关闭 Chrome 浏览器。
阅读全文