【背景】 测试selenium时,如果不做任何改造,那么每次测试都要吊起driver,从头执行一遍所有步骤。频繁修改并回归测试时会感觉效率很低。
【改善方法】 采用手动一次吊起Chrome,完成登录等公共步骤后,再用selenium接上的方法展开测试。 首先利用如下Bat文件吊起测试Chrome: Selenium效率化预备Bat下载地址 在这个Chrome中做打开,登录等公共的准备步骤 然后在Python的Selenium脚本中做如下设置:
# 开始运行网页脚本
options = webdriver.ChromeOptions()
prefs = {'profile.default_content_settings.popups': 0, "profile"
".default_content_setting_values.automatic_downloads": 1}
chrome_driver = "D:\Document\GitHub\Oculus_spider\chromedriver.exe"
options.add_argument('--ignore-certificate-errors')
options.add_argument('--disable-notifications')
options.add_argument('--no-sandbox')
options.add_argument('--verbose')
options.add_argument('--disable-gpu')
# options.add_experimental_option('prefs', prefs)
options.add_experimental_option('debuggerAddress', '127.0.0.1:9222')
driver = webdriver.Chrome(chrome_driver, chrome_options=options)
driver.implicitly_wait(30)
重点在于options.add_experimental_option(‘debuggerAddress’, ‘127.0.0.1:9222’) 这个语句将你的selenium脚本接续在已经打开的测试浏览器的页面基础上接续执行。
通过这种方法,不仅可以省去登录的自动化编写,而且反复测试时可以只从中间有问题的步骤开始自动化测试,不需要从头开始。