当前位置: 首页 > 面试题库 >

selenium测试脚本通过新的Ajax登录表单登录到Google帐户

孙德宇
2023-03-14
问题内容

我能够编写脚本以将我的电子邮件地址添加到email元素中。但是一旦通过脚本单击“下一步”,Google就会使用ajax将该电子邮件元素动态替换为密码元素。这是我遇到的问题,无法在该元素中提供密码并且无法登录。

网址:https://accounts.google.com/signin/v2/identifier?flowName
= GlifWebSignIn&flowEntry =
ServiceLogin

请编写selenium测试脚本以实现此目的。


问题答案:

这是https://accounts.google.com/signin使用您的有效凭据访问url 登录并Page Title在控制台上打印的代码块:

String url = "https://accounts.google.com/signin";
driver.get(url);
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); 
WebElement email_phone = driver.findElement(By.xpath("//input[@id='identifierId']"));
email_phone.sendKeys("your_email");
driver.findElement(By.id("identifierNext")).click();
WebElement password = driver.findElement(By.xpath("//input[@name='password']"));
WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.elementToBeClickable(password));
password.sendKeys("your_password");
driver.findElement(By.id("passwordNext")).click(); 
System.out.println(driver.getTitle());
driver.quit();

控制台输出:

Google Accounts

更新(2020年1月5日)

优化上面的代码块并添加几个可以使用的参数

public class browserAppDemo 
{
    public static void main(String[] args) throws Exception 
    {
        System.setProperty("webdriver.chrome.driver", "C:\\Utility\\BrowserDrivers\\chromedriver.exe");
        ChromeOptions options = new ChromeOptions();
        options.addArguments("start-maximized");
        options.setExperimentalOption("useAutomationExtension", false);
        options.setExperimentalOption("excludeSwitches", Collections.singletonList("enable-automation"));
        WebDriver driver =  new ChromeDriver(options); 
        driver.get("https://accounts.google.com/signin")
        new WebDriverWait(driver, 10).until(ExpectedConditions.elementToBeClickable(By.xpath("//input[@id='identifierId']"))).sendKeys("emailID");
        driver.findElement(By.id("identifierNext")).click();
        new WebDriverWait(driver, 10).until(ExpectedConditions.elementToBeClickable(By.xpath("//input[@name='password']"))).sendKeys("password");
        driver.findElement(By.id("passwordNext")).click();
    }
}


 类似资料:
  • 嗨,我正在尝试对我的登录页面进行Microsoft单点登录身份验证。为此,我已经使用它创建了Azure多租户目录,并根据给定的链接https://www.c-sharpconer.com/article/azure-ad-authentication-for-mvc-web-application/创建了带有重定向URI的应用程序。成功地集成了代码,当运行时,我在输入用户名和密码后,我在错误下面得

  • 我正在使用selenium打开并登录google帐户,这是我的第一步。我已成功打开并填写了电子邮件回复,但在提交后,我收到了以下错误 “此浏览器或应用程序可能不安全。了解更多尝试使用不同的浏览器。如果您已经在使用受支持的浏览器,您可以刷新屏幕并重试登录。”来自谷歌。 有什么办法可以绕过这个问题吗?下面是我的代码。

  • 在本节中,将学习如何在Selenium IDE中创建登录测试用例。 出于测试目的,我们将测试考评师网 的登录页面,该网站网址如下: http://www.kaops.com/ 注意:可以在任何公开可用的网站上注册并创建登录测试。 下图显示了当点击上述URL时显示的主页的快照。 首先,注册用户以获取登录凭据。 对于此测试,我们已经生成了登录凭据(账户和密码)。 现在,生成一个测试脚本,以在Selen

  • 我的谷歌登录有问题。我想登录我的账户,但谷歌表示,自动化驱动程序是不允许登录的。 我在寻找解决办法。有没有可能得到一个普通Firefox/Chrome的cookie并将其加载到ChromeDriver/GeckoDriver中?我认为这是一个解决方案。但我不确定这是否可能。。 寻找解决方案... 另外,我想添加一个快速解决方案。我用我的一个旧帐号解决了这个问题。这对你来说可能是一个快速的解决方案。

  • 我正在尝试将Keyclope集成到我的Spring Security层中。我已经做到了这一点,唯一需要解决的问题是: 当一个endpoint被命中时,需要对用户进行身份验证,该站点将重定向到我的Keyclope登录页面。登录后,用户将重定向回最初请求的页面。我试图实现的是:我不希望我的用户从我的应用程序重定向到Key斗篷登录页面,然后再返回,但更好的是,通过我的应用程序上的表单登录,并将这些捕获的

  • 我一直在尝试使用selenium登录我的谷歌帐户,但一旦我通过电子邮件并点击回车,它会重定向到以下消息 “此浏览器或应用可能不安全。了解更多信息请尝试使用其他浏览器。如果您已经在使用受支持的浏览器,您可以刷新屏幕,然后再次尝试登录。” 以下是我的python代码: 请注意,我是python和selenium的新手。我非常感谢你的帮助。提前谢谢 我已经尝试使用硒谷歌登录块中描述的方法,但它仍然给了我