为了账号安全,请及时绑定邮箱和手机立即绑定

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

/ 猿问

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

慕仰8121524 2019-12-06 14:56:04

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


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


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


查看完整描述

3 回答

?
慕丝7291255

这是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


查看完整回答
反对 回复 2019-12-06
?
米琪卡哇伊

使用以下代码表示相同的内容:


driver.findElement(By.id("identifierId")).sendKeys("testmai@gmail.com");

driver.findElement(By.id("identifierNext")).click();

System.out.println("Username Entered And Next Button clicked");

try

{

    new WebDriverWait(driver,30).until(ExpectedConditions.visibilityOf(driver.findElement(By.xpath("//input[@type='password']"))));

    driver.findElement(By.xpath("//input[@type='password']")).sendKeys("testpassword");

}

catch(Exception e)

{

    new WebDriverWait(driver,30).until(ExpectedConditions.visibilityOf(driver.findElement(By.xpath("//input[@type='password']"))));

    driver.findElement(By.xpath("//input[@type='password']")).sendKeys("testpassword");


    driver.findElement(By.id("passwordNext")).click();

    System.out.println("Password Entered And Next Button clicked");

}


查看完整回答
反对 回复 2019-12-06
?
呼如林

下面的代码对我有用


     driver.get("https://accounts.google.com/signin/v2/identifier?flowName=GlifWebSignIn&flowEntry=ServiceLogin");

     driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);

     driver.findElement(By.name("identifier")).sendKeys("xyz@gmail.com");

     driver.findElement(By.xpath("//span[contains(.,'Next')]")).click();

     driver.findElement(By.name("password")).sendKeys("123456");

     WebDriverWait wait = new WebDriverWait(driver, 10);

     WebElement element = wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//span[contains(.,'Next')]")));

     element.click();

希望它能对您有所帮助:)


查看完整回答
反对 回复 2019-12-06

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信