selenium - 常见问题(三)用例失败截图 - 打开了多个浏览器页面
修改前的代码,运行时会打开多个浏览器页面(因为运行一次webdriver.Chrome(),就会打开一个页面)
修改后的代码,将webdriver.Chrome()放在配置文件的全局变量driver中,使用时import即可
1. 修改前代码:
test_base.py
test_baidu.py
2. 修改后代码:
conf.py
from selenium import webdriver driver = webdriver.Chrome() # 定义一个全局变量,使用时import即可(防止运行时打开多个浏览器页面)
test_base.py
.... from conf.conf import driver # 引入全局变量driver class MyTestBaidu(unittest.TestCase): @classmethod def setUpClass(cls): cls.driver = driver # 将全局变量driver赋值给cls.driver cls.driver.maximize_window() cls.driver.implicitly_wait(10) cls.base_url = 'http://www.baidu.com/' cls.page = BaiduPage(cls.driver) ....
test_baidu.py
.... from conf.conf import driver # 引入全局变量driver class TestSearch(MyTestBaidu): @Screen(driver) # 使用全局变量driver def test_search_1(self): self.driver.get(self.base_url) self.page.search_input.send_keys('python') self.page.search_button.click() time.sleep(2) self.assertEqual(self.driver.title, 'python_百度搜索1') time.sleep(2) ....