Java Selenium 无法登录 GMail



我正在用java学习硒。我的用例是:

  1. 浏览www.google.com
  2. 搜索" Gmail登录"
  3. 打开第一个链接
  4. 单击"签名"按钮(这需要我登录页面(
  5. 输入电子邮件,单击下一步输入密码
  6. 单击下一个

有两种情况,one当我直接浏览Gmail登录页面和skip (1,2,3 points )时,它对我有用。我可以登录,但是使用2nd从第一步开始时,它会投掷

Exception in thread "main" org.openqa.selenium.WebDriverException: java.net.SocketTimeoutException: timeout在第5点(需要输入电子邮件时(

这是我的总体代码:

  WebDriver web;
    public void invokeChrome()
    {
            System.setProperty("webdriver.chrome.driver", "D:\software testing\chromedriver.exe");
            web = new ChromeDriver();
            web.manage().window().maximize();
            web.manage().deleteAllCookies();
            web.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
            web.manage().timeouts().pageLoadTimeout(30, TimeUnit.SECONDS);
            web.get("https://www.google.com");
    }
 void searchQuery() throws InterruptedException
   {
       web.findElement(By.name("q")).sendKeys("Gmail Login");
       Thread.sleep(2000);
       web.findElement(By.xpath("//div[@class='sbl1']")).click();
       web.findElement(By.xpath("//h3[@class='LC20lb']")).click();
       web.findElement(By.linkText("Sign in")).click();
       Thread.sleep(2000);
       web.findElement(By.xpath("//input[@type='email']")).sendKeys("xyz@gmail.com");
       web.findElement(By.xpath("//span[@class='RveJvd snByac']")).click();
       web.findElement(By.cssSelector(".A3sRAb.YKooDc .zHQkBf, .A3sRAb.YKooDc .MQL3Ob")).sendKeys("*****@");
       Thread.sleep(2000);
       web.findElement(By.xpath("//span[contains(text(), 'Next')]")).click();
   }

我正在使用Chromedrive 74和硒:3.9.0版本

我自己想出了解决方案。虽然可能会在将来对某人有所帮助。好的,问题是

   <a href="SIGN IN Page" target="_blank">

因为新选项卡打开时,WebDriver需要将控件从旧选项卡转换为新标签。这样:

   WebElement link =   web.findElement(By.linkText("Sign in"));
   String l = link.getAttribute("href");
   web.get(l);

最新更新