此代码用于登录gmail
public void login(User user) {
WebDriverWait wait = new WebDriverWait(driver, 60);
WebElement emailTextBox = wait.until(
ExpectedConditions.visibilityOfElementLocated(By.id("identifierId")));
emailTextBox.sendKeys(user.email);
WebElement nextButton = wait.until(
ExpectedConditions.visibilityOfElementLocated(By.xpath("//span[contains(text(), 'Next')]")));
nextButton.click();
WebElement passwordTextBox = wait.until(
ExpectedConditions.visibilityOfElementLocated(By.xpath("//input[@type='password']")));
passwordTextBox.sendKeys(user.password);
nextButton = wait.until(
ExpectedConditions.visibilityOfElementLocated(By.xpath("//span[contains(text(), 'Next')]")));
nextButton.click();
}
问题
我们有一个Web应用程序正在测试中,用户可以使用google(oAuth2)登录,但是gmail使用用户验证(重置密码或验证码或电话号码)捕获自动化脚本。
问题:
有没有办法避免gmail用户验证?
(我不是要解决google验证挑战,在用户手动运行的普通浏览器中,此验证挑战不会被触发(大多数情况下),但在selenium中,有时会发生这种情况,并且我的测试失败。)
2018年8月19日更新
这是一条死胡同,绕过谷歌验证并非小事,在搜索更多内容后,我发现服务虚拟化是解决此问题的正确方法,可能是Hoverfly。
使用cookie解决了我的问题
public HomePage googleAutoLogin(String cookieKey, String cookieValue) {
Calendar cal = Calendar.getInstance();
cal.add(Calendar.HOUR, 1);
Date afterOneHour = cal.getTime();
driver.manage().deleteAllCookies();
Cookie cookie = new Cookie.Builder(cookieKey, cookieValue)
.domain("qreflect.com")
.path("/")
.expiresOn(afterOneHour)
.isHttpOnly(true)
.build();
driver.manage().addCookie(cookie);
driver.navigate().refresh();
logger.log(Level.INFO, "Finished adding cookie");
return this;
}
您必须手动登录一次,然后检查以获取与应用程序会话相关的cookie,将它们存储在某个位置,并将密钥/值对传递给此方法才能登录。
我正在使用selenium来自动化Web应用程序中的邮件验证过程。我已经有了一个脚本来登录gmail并阅读帐户上收到的激活邮件。该脚本在昨天之前一直运行良好,但今天我遇到了一个问题。 如果使用selenium启动浏览器,Gmail将不允许登录。说, 您使用的浏览器谷歌无法识别,或者是我们不支持的设置方式。 我已经尝试将chrome驱动程序版本升级到76.0.0,因为我使用的是chrome版本76.
截至今天,用户无法在新的配置文件中使用selenium登录到Google帐户。我发现,谷歌正在阻止这个过程(拒绝?)甚至尝试stackauth。(在升级到v90后经历过这种情况)。 这是我之前发布的使用OAuth登录Google的答案,直到最近才生效 简而言之,您将通过stackauth直接登录。 我可以绕过限制的唯一方法是禁用Secure-App-Access或添加以下给定参数。(我不喜欢这样,
我正在使用hybridauth库。 Hybridauth文档说,通过存储会话数据,可以实现持久会话。 假设我在数据库中存储了用户会话数据。它包含oauth令牌、oauth刷新令牌等。。 使用oauth令牌,无需询问用户权限即可联系oauth服务器。 现在一切都好了。现在,如果用户登录到谷歌,如何准确地自动登录用户? ?
本文向大家介绍Thinkphp框架 表单自动验证登录注册 ajax自动验证登录注册,包括了Thinkphp框架 表单自动验证登录注册 ajax自动验证登录注册的使用技巧和注意事项,需要的朋友参考一下 动态验证:(不需要建Model模型) 1.建一个控制器,做表单操作(包含验证) 2.对应控制器方法的html页面: ajax:(不需要建Model模型) 1.建一个控制器,做表单操作(包含验证) 2.
localhost:9999/uaa/oauth/authorize的浏览器响应?response_type=code&client_id=acme&redirect_uri=http://example.com找到302, 但localhost:9999/uaa/login的响应为401未授权。 我可以在添加@enableResourceServer之前获得登录令牌。我正在使用Spring bo
本文向大家介绍Java用户登录验证代码,包括了Java用户登录验证代码的使用技巧和注意事项,需要的朋友参考一下 废话不多说了,关键代码如下所示: 以上所述是小编给大家介绍的Java用户登录验证代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对呐喊教程网站的支持!