Selenium驱动程序不记得用户身份验证

时间:2013-03-04 03:29:40

标签: authentication selenium selenium-webdriver

我正在测试的应用程序需要使用用户的Google帐户登录。每次登录时,都会显示/要求我选择“允许访问”按钮,就好像它不记得我已将其添加到我的Google帐户的授权访问列表中一样。当我手动测试时,这种情况不会发生,只有当我运行Selenium时。有没有人遇到这样的问题或知道解决方案?提前致谢。

WebDriver driver = selenium_driver.get(); // using chrome driver 
baseUrl = defaults.getProperty("base_url"); // this is set to my localhost 
helper.ConnectToURL(baseUrl);

当这种情况开始发生时,我一直在使用Selenium 2.28.0 - 从那时起,我已经更新到2.31.0,但它表现出相同的行为。

1 个答案:

答案 0 :(得分:1)

免责声明:根据ChromeDriver wiki,目前无法实现此目的。它在“已知问题”部分中指出“无法指定自定义配置文件”。 (https://code.google.com/p/selenium/wiki/ChromeDriver

在修复某些时候,我建议您创建或使用默认的chrome配置文件,该配置文件具有您的测试在启动时使用的授权访问集。

根据ChromeDriver wiki:“默认情况下,ChromeDriver会为每个会话创建一个新的临时个人资料”。

查看此帖子,了解有关功能的更多详细信息:http://code.google.com/p/chromedriver/wiki/CapabilitiesAndSwitches

我在.NET和Windows中工作;我的设置看起来像这样:

ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.AddArgument("start-maximized");
chromeOptions.AddArgument("user-data-dir=C:\\Users\\username\\AppData\\Local\\Google\\Chrome\\User Data\\Default");
capabilities = DesiredCapabilities.Chrome();
capabilities.SetCapability(ChromeOptions.Capability, chromeOptions);
ChromeDriver chromeDriver= new ChromeDriver(this.Environment.ChromeDriverLocation, chromeOptions);

如果您不仅限于使用Chrome进行测试,则可以使用Firefox创建和使用自定义配置文件。