Google Chrome的个人资料问题

时间:2016-03-29 04:46:59

标签: c# selenium selenium-webdriver selenium-chromedriver user-profile

我正面临着自动化脚本的问题。我在我的脚本中登录了一个URL。当我手动执行该操作时,它会正常登录,但是当我使用自动化脚本时,它会询问我的邮件中可用的验证码。< / p>

我想如果我将使用chrome默认配置文件进行登录,那么这个问题不应该出现。但它没有帮助我。

有人可以建议任何解决方案吗?

1 个答案:

答案 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中,我希望它会对你有帮助。

谢谢你, 穆拉利