3 回答
TA贡献1906条经验 获得超10个赞
当您每次创建一个新的ChromeDriver实例时执行您的代码,这会产生一个新的Chrome 浏览器会话。此功能是按照设计。
更好的方法是在每次运行Test Executiondriver.quit()
后在方法内调用以优雅地tearDown(){}
关闭和销毁WebDriver和Web Browser实例。你可以在这里找到详细的讨论。
虽然这可以解决多个Chrome 浏览器窗口的问题,但您仍然不会在新会话中登录。要登录,您需要使用特定的Chrome 配置文件并存储cookie并在以后重复使用。您将在此讨论中找到有关如何创建和打开新 Chrome 配置文件的详细讨论。
要使用您已安装的扩展,您需要打包/解压缩它们并使用ChromeOptions
class.
Chrome 扩展程序
Chrome 扩展程序可以打包或解包。打包扩展名是具有 .crx 扩展名的单个文件。未打包的扩展是一个包含扩展的目录,包括一个manifest.json
文件。
要打包未打包的扩展程序,请使用中的打包按钮chrome://extensions
或使用 Chrome(Windows 示例):
chrome.exe --pack-extension=C:\path\to\unpacked\extension --pack-extension-key=C:\myext.pem
请参阅扩展文档以了解其他更自动化的方法。要解压打包的扩展,只需解压缩文件(您可能需要将文件从 重命名为.crx
,以便.zip
zip 实用程序识别它)。
通过 ChromeDriver 使用扩展程序
打包(.crx 文件):
ChromeOptions options = new ChromeOptions();
options.addExtensions(new File("/path/to/extension.crx"));
WebDriver driver = new ChromeDriver(options);
解压(目录):
ChromeOptions options = new ChromeOptions();
options.addArguments("load-extension=/path/to/extension");
WebDriver driver = new ChromeDriver(options);
TA贡献1777条经验 获得超10个赞
使用最新的 Selnium 4 Java jar 和 Selenium 服务器 jar 解决了我的额外 Chrome 浏览器窗口的问题
https://www.selenium.dev/downloads/
添加回答
举报