如何用Selenium Python在本地多浏览器中运行多URL测试脚本
本地多浏览器多URL测试脚本修改方案
以下是适配本地Chrome和Firefox浏览器的修改后脚本,同时保留多URL测试逻辑:
import time from selenium import webdriver from selenium.webdriver.chrome.options import Options from selenium.webdriver.firefox.options import Options as FirefoxOptions def localitems(driver): local_storage = driver.execute_script( "var ls = window.localStorage, items = {}; " "for (var i = 0, k; i < ls.length; ++i) " " items[k = ls.key(i)] = ls.getItem(k);" "return items; " ) return local_storage def sessionitems(driver): session_storage = driver.execute_script( "var ls = window.sessionStorage, items = {}; " "for (var i = 0, k; i < ls.length; ++i) " " items[k = ls.key(i)] = ls.getItem(k);" "return items; " ) return session_storage # 定义要测试的浏览器和目标URL browsers = ["chrome", "firefox"] sites = [ "http://www.github.com", "https://tribune.com.pk" ] for browser in browsers: print(f"=== 启动 {browser.upper()} 浏览器测试 ===") # 根据浏览器类型初始化驱动 if browser == "chrome": driver = webdriver.Chrome() elif browser == "firefox": # 若需配置Firefox选项,可在此添加,比如FirefoxOptions() driver = webdriver.Firefox() # 遍历所有URL执行测试 for index, site in enumerate(sites): print(f"测试URL {index+1}: {site}") driver.get(site) time.sleep(5) print('localStorage', localitems(driver)) print('sessionStorage', sessionitems(driver)) print("---") # 测试完成后关闭当前浏览器 driver.quit() print(f"{browser.upper()} 浏览器测试结束\n")
关键修改说明
- 移除全局驱动变量:不再使用全局的
Driver,为每个浏览器单独创建驱动实例,避免不同浏览器实例互相干扰。 - 重构存储获取函数:将
driver作为参数传入localitems和sessionitems函数,确保每个函数调用对应当前浏览器的上下文。 - 增加浏览器循环逻辑:通过遍历
browsers列表,依次启动Chrome和Firefox,每个浏览器都完整遍历所有URL执行测试。 - 修复语法错误:修正原脚本中
for循环缺少冒号、缩进不规范的问题,保证代码可正常运行。 - 可选配置浏览器选项:如果需要对Chrome或Firefox添加启动参数(如无头模式),可通过
Options或FirefoxOptions进行配置后传入驱动初始化方法。
内容的提问来源于stack exchange,提问作者ZA09
相关产品推荐
相关产品推荐

