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)
....

 

 

 

   

 

posted @ 2020-05-06 17:35  小虫虫大虫虫  阅读(630)  评论(0编辑  收藏  举报