【问题标题】:how to handle Mobile OTP using selenium如何使用 selenium 处理移动 OTP
【发布时间】:2020-11-05 21:06:31
【问题描述】:

有一种情况是,当我在 chrome 浏览器中手动打开 URL 并提供凭据时。 单击登录按钮后,一个 OTP 将进入移动设备。输入 OTP 后有一个复选框。 不要向 OTP 询问此浏览器。如果我们单击该复选框并登录到门户。然后从下次我们打开相同的浏览器并访问门户网站,它不会要求 OTP。那么我们可以在每次关闭浏览器后自动打开同一个浏览器吗?无需调用新的 chrome 实例。

【问题讨论】:

  • 您可以将 OTP 选项更改为 Authenticator 吗?当您在完成 OTP 后手动打开新浏览器时会发生什么情况,它仍然会再次要求 OTP 吗?
  • 当你我们使用 webdriver 时,它会每次创建新实例并打开新的 chrome。对于这种情况,每次 OTP 都会询问。因此,当我打开本地安装的 chrome 时,它​​只会询问一次 OTP。
  • 好的,那么您可以在执行过程中打开本地 chrome 配置文件,这样您就不会再次收到 OTP 请求。请参考this发帖

标签: java selenium-webdriver automation selenium-chromedriver


【解决方案1】:

手动完成 OTP 后,您可以使用默认配置文件来使用本地 chrome 配置文件。

ChromeOptions options = new ChromeOptions();
options.addArguments("user-data-dir=/path/to/your/custom/profile");
ChromeDriver driver = new ChromeDriver(options);

您可以获得默认配置文件路径,如下面的屏幕截图所示。 请在浏览器中打开 chrome://version 以查看 Chrome 正在使用的配置文件。

【讨论】:

  • public class Test{ public static void main(String args[]){ System.setProperty("webdriver.chrome.driver","C://Program Files (x86)//Google// Chrome//应用程序//chrome.exe"); ChromeOptions 选项 = 新 ChromeOptions(); options.addArguments("user-data-dir=C:\Users\user-name\AppData\Local\Google\Chrome\User Data\Default"); ChromeDriver 驱动程序 = 新的 ChromeDriver(选项); WebDriver driver = new ChromeDriver();字符串 baseurl = "facebook.com"; driver.get(baseurl); } }
  • 此代码无效。我尝试了上述方法。如有错误请修改。
  • 首先,Facebook 是您的应用程序正在测试还是只是在尝试使用它?检查 facebook 规则,如果你可以在他们的网页上使用自动化,这可能违反他们的规则。
  • 您是否从完成 OTP 的 chrome://version 浏览器中获得了 user-data 路径?您收到任何错误消息吗?
  • Facebook 不是我正在做的应用程序。我只是在那里给出了示例 URL,而不是我的原始 URL。我可以这样吃吗?? System.setProperty("webdriver.chrome.driver","C://Program Files (x86)//Google//Chrome//Application//chrome.exe");因为使用此路径,chrome 正在打开但 URL 未通过。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-21
  • 1970-01-01
相关资源
最近更新 更多