1

我正在测试的应用程序需要使用用户的 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,但它表现出相同的行为。

4

1 回答 1

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 创建和使用自定义配置文件。

于 2013-03-05T20:37:05.690 回答