如何使用 Selenium WebDriver 处理“使用 Google 登录"弹出窗口 [英] How to handle 'Log in with Google' popup window using Selenium WebDriver
本文介绍了如何使用 Selenium WebDriver 处理“使用 Google 登录"弹出窗口的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
所以我有一段代码可以在 fblogin 弹出窗口上工作,但同一段代码在 googlelogin 弹出窗口上不起作用.我不知道为什么.网站 = https://accounts.trivago.com/login#
So i have a piece of code which works on fblogin pop-up window but the same piece of code doesn't work on googlelogin popup window. I dont know why. Website = https://accounts.trivago.com/login#
脸书注册码:
driver.findElement(By.xpath(".//*[@id='authentication-login']/div/section[1]/div[3]/div/button[1]")).click();
String parentWindow = driver.getWindowHandle();
System.out.println("Parent Window ID is : " + parentWindow);
Set<String> allWindow = driver.getWindowHandles();
int count = allWindow.size();
System.out.println("Total Window : " + count);
for(String child:allWindow)
{
if(!parentWindow.equalsIgnoreCase(child))
{
driver.switchTo().window(child);
driver.manage().window().maximize();
driver.findElement(By.id("email")).sendKeys("");
driver.findElement(By.id("pass")).sendKeys("");
driver.findElement(By.id("u_0_0")).click();
Thread.sleep(7000);
}
}
driver.switchTo().window(parentWindow);
Google 登录:
driver.findElement(By.xpath(".//*[@id='authentication-login']/div/section[1]/div[3]/div/button[2]")).click();
String parentWindow = driver.getWindowHandle();
System.out.println("Parent Window ID is : " + parentWindow);
Set<String> allWindow = driver.getWindowHandles();
int count = allWindow.size();
System.out.println("Total Window : " + count);
for(String child:allWindow)
{
if(!parentWindow.equalsIgnoreCase(child))
{
driver.switchTo().window(child);
driver.manage().window().maximize();
Thread.sleep(7000);
}
}
driver.switchTo().window(parentWindow);
推荐答案
您的代码是正确的,只需点击Log in with Google"按钮后添加等待即可.
Your code is correct , only need to add wait after click on "Log in with Google" button.
您也可以使用以下代码
public void LoginGoogle() throws InterruptedException
{
driver.get("https://accounts.trivago.com/login#");
driver.findElement(By.xpath(".//*[@id='authentication-login']/div/section[1]/div[3]/div/button[2]")).click();
Thread.sleep(5000);
String parentWindow = driver.getWindowHandle();
System.out.println("Parent Window ID is : " + parentWindow);
for(String winHandle : driver.getWindowHandles())
{
driver.switchTo().window(winHandle);
System.out.println(driver.getTitle());
driver.manage().window().maximize();
}
WAIT.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//input[@id='identifierId']")));
driver.findElement(By.xpath("//input[@id='identifierId']")).sendKeys(emailid);
//Continue
这篇关于如何使用 Selenium WebDriver 处理“使用 Google 登录"弹出窗口的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文