gpt4 book ai didi

java - 使用 Chrome headless 浏览器实现自动化,每次都需要 OTP

转载 作者:行者123 更新时间:2023-12-02 01:09:24 26 4
gpt4 key购买 nike

我正在使用 java 和 headless Chrome 来自动化 selenium 自动化工具中的应用程序。

我的应用程序在首次登录计算机或新浏览器(chrome/mozila/IE)时需要 OTP 验证。一旦在机器或浏览器上验证了 OTP,从下次开始就不会要求输入 OTP。登录就足够了。

由于我正在自动化其 headless 浏览器,我想我可以通过第一次在控制台中输入 OTP 来提供 OTP 和验证,并且从下次开始它可能不会要求 OTP。

System.setProperty("webdriver.chrome.driver", constant.browserPathChrome);
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.setHeadless(true);
chromeOptions.addArguments("--enable-javascript");
chromeOptions.addArguments("--disable-gpu");
driver = new ChromeDriver(chromeOptions);
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
driver.get("my application url");

但是,当我从同一台计算机启动该站点时,即使在我的计算机中通过在控制台中提供接收到的 OTP 作为输入来首次验证它之后,chrome headless 每次都会要求 OTP。但每次自动化时我都无法给出OTP。如何让它像其他浏览器一样运行?我应该添加哪些功能?

Phantom.js 没有这种问题,当我第一次通过控制台提供 OTP 时,它会进行验证,从下次开始就不再要求 OTP。但由于其他一些原因我无法使用 pahntom.js。我想使用 chrome headless 。

最佳答案

Selenium 将为每次运行创建一个新的浏览器实例,因此它为每次运行请求 OTP 是有效的。

一种解决方案可能是您可以在启动浏览器实例时添加 Chrome 配置文件,以便 selenium 会选择此配置文件而不是启动其默认配置文件。

chromeOptions.addArguments("user-data-dir=path_of_chrome_profile");

chrome 配置文件路径可以是您的本地路径或存储库路径

关于java - 使用 Chrome headless 浏览器实现自动化,每次都需要 OTP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57704478/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com