这是我尝试通过Web驱动程序自动化Gmail的代码。
我发现了一些奇怪的事情。每当我注释掉该行以查找Password (Driver.findElement(By.xpath(".//*[@id='Passwd']")).sendKeys("SRS");)
则Web驱动程序已成功单击" Sign In
"按钮
但是当我取消注释该行时
(Driver.findElement(By.xpath(".//*[@id='Passwd']")).sendKeys("SRS");)
然后 Web 驱动程序也无法单击登录按钮,并且它给出错误消息,即找不到密码 Xpath,但仍仅在电子邮件 ID 屏幕上
这是随附的屏幕截图
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class Gmail {
public static void main(String[] args) {
// TODO Auto-generated method stub
WebDriver Driver = new FirefoxDriver();
Driver.get("https://www.google.com/gmail/about/");
Driver.findElement(By.xpath("html/body/nav/div/a[2]")).click();
Driver.manage().timeouts().implicitlyWait(2, TimeUnit.SECONDS);
//Enter the Gmail ID
Driver.findElement(By.xpath(".//*[@id='Email']")).sendKeys("RK12@gmail.com");
Driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
//Click on Next Button
Driver.findElement(By.xpath(".//*[@id='next']")).click();
Driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
Driver.findElement(By.xpath(".//*[@id='Passwd']")).sendKeys("SRS");
//Driver.manage().timeouts().implicitlyWait(40, TimeUnit.SECONDS);
}
}
1.您提供了错误的电子邮件ID,因此Google对其进行了验证,并将错误消息显示为"抱歉,Google无法识别该电子邮件"。
因此,请输入有效的电子邮件ID以进入密码页面。
2.在这里,问题中的代码给出了ElementNotVisibleException
,因此添加了ExpectedConditions.visibilityOfElementLocated
以确保在发送密钥之前加载密码字段。
更新的代码:
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class Gmail {
public static void main(String[] args) {
WebDriver Driver = new FirefoxDriver();
Driver.get("https://www.google.com/gmail/about/");
Driver.findElement(By.xpath("html/body/nav/div/a[2]")).click();
Driver.manage().timeouts().implicitlyWait(2, TimeUnit.SECONDS);
//Enter the Gmail ID
Driver.findElement(By.xpath(".//*[@id='Email']")).sendKeys("rbnaveen558@gmail.com");
Driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
//Click on Next Button
Driver.findElement(By.xpath(".//*[@id='next']")).click();
Driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
WebDriverWait wait = new WebDriverWait(Driver, 10);
WebElement pwd = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("Passwd")));
pwd.sendKeys("SRS");
//Driver.manage().timeouts().implicitlyWait(40, TimeUnit.SECONDS);
}
}
请添加"登录"按钮,我对此进行了测试。这工作正常。 driver.findElement(By.xpath(".//*[@id='Passwd']")).sendKeys("SRS");
driver.manage().timeouts().implicitlyWait(40, TimeUnit.SECONDS);
//click to sign in
driver.findElement(By.id("signIn")).click();