我正面临着自动化脚本的问题。我在我的脚本中登录了一个URL。当我手动执行该操作时,它会正常登录,但是当我使用自动化脚本时,它会询问我的邮件中可用的验证码。< / p>
我想如果我将使用chrome默认配置文件进行登录,那么这个问题不应该出现。但它没有帮助我。
有人可以建议任何解决方案吗?
答案 0 :(得分:0)
众所周知,Webdriver始终以全新的默认配置文件启动。这就是它要求验证的原因,但手动时却不一样。为避免这种情况,您可以指定手动用于webdriver的chrome配置文件。
在Java中,我们可以使用ChromeOptions和Chrome Profile完成此操作。在chrome中导航到chrome:// version /它将显示配置文件路径和可执行路径。
根据我的工作,当导航到chrome:// version / in normal chrome时,会显示\ Local \ Google \ Chrome \ User Data \ Profile 3。在此配置文件中,我导航到stackoverflow并保存凭据。所以在代码下面使用
Map<String, Object> prefs = new HashMap<String, Object>();
prefs.put("binary", "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe");
System.setProperty("webdriver.chrome.driver", "E:\\selenium_setups\\poi-3.12\\chromedriver.exe");
ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("prefs", prefs);
options.addArguments("user-data-dir=C:\\Users\\murali\\AppData\\Local\\Google\\Chrome\\User Data\\Profile 3");
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
capabilities.setCapability(ChromeOptions.CAPABILITY, options);
WebDriver driver = new ChromeDriver(capabilities);
//WebDriver driver = new ChromeDriver(options);
driver.get("http://stackoverflow.com/");
根据我的理解,我除了登录后显示的stackoverflow.com页面。但是第一次,我没有登录。所以交叉检查chrome:// version / in chrome打开驱动程序,显示配置文件路径如 \ Local \ Google \ Chrome \ User Data \ Profile 3 \ Default。然后手动在该配置文件中自动记录,由webdriver打开并通过关闭它来执行获取。
最后,页面显示为已登录。所以它可能在java中,我希望它会对你有帮助。
谢谢你, 穆拉利