使用selenium接管已打开的浏览器
编写UI自动化代码时经常遇到一个地方需要反复调试的情况,但是每次打开新的浏览器就要把前置用例都执行一遍,浪费时间且没有意义,这时候直接控制已打开的浏览器进行调试就会方便很多。对于需要手动打开浏览器,进入到所需的页面,执行一些手动任务,如输入表单、输入验证码,登陆成功后,然后再开始运行自动化脚本的情况也完全可以满足。
一、打开浏览器
将chrome的路径添加到环境变量path里,打开cmd,执行命令:chrome.exe --remote-debugging-port=9222 --user-data-dir="D:\selenium_chrome"。执行后会打开一个浏览器页面。
- -remote-debugging-port:指定任何打开的端口。
- -user-data-dir:指定创建新Chrome配置文件的目录。它是为了确保在单独的配置文件中启动chrome,不会污染你的默认配置文件。
- 无头模式加--headless,如:chrome.exe [--headless] --remote-debugging-port=9222 --user-data-dir="D:\selenium_chrome"
二、使用selenium接管已打开的浏览器
python
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")
driver = webdriver.Chrome(chrome_options=chrome_options)
java
ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("debuggerAddress", "127.0.0.1:9222");
driver = new ChromeDriver(options);