当前位置: 首页 > 知识库问答 >
问题:

Java Selenium无法登录GMail

饶德本
2023-03-14

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

    < li >浏览www。Google.com < li >搜索“Gmail登录” < li >打开第一个链接 < li >单击登录按钮(这将带我进入登录页面) < li >输入电子邮件,单击下一步,然后输入密码 < li >单击下一步

有两种情况,一种当我直接浏览gmail登录页面时,跳过(1,2,3分)它对我有效。我可以登录,但从第一步开始时使用第二个它会抛出

< code >线程“main”org . open QA . selenium . web driver Exception中的异常:Java . net . sockettimeoutexception:time out 位于第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版本

共有1个答案

上官迪
2023-03-14

我自己想出了解决办法。只是也许它将来会帮助别人。好吧,问题是

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

因为当新选项卡打开时,Webdriver需要将控制从旧选项卡切换到新选项卡。如下所示:

   WebElement link =   web.findElement(By.linkText("Sign in"));
   String l = link.getAttribute("href");
   web.get(l);
 类似资料:
  • 我尝试使用这个简单的代码登录,但在我点击登录按钮后,else选项“无效用户名或密码!”总是出现,即使用户名和密码是匹配的 控制器:

  • 每当我试图打开 致命错误:未捕获错误:调用C:\xampp\htdocs\wordpress\wp includes\wp db中未定义的函数mysql\u connect()。php:1668堆栈跟踪:#0 C:\xampp\htdocs\wordpress\wp includes\wp db。php(632):wpdb- 致命错误:未捕获错误:调用C:\xampp\htdocs\wordpre

  • 正在尝试将代码更新为Selenium 3。x、 在尝试运行测试时,我不断遇到一个错误: 同样的代码曾经在运行测试时工作,我真的不知道它在哪里或为什么会出现这样一个奇怪的错误。我似乎找不到任何人以前写过的任何东西,所以我希望stackoverflow社区可以帮助我解决这个问题。 以下是生成此错误的代码:

  • 我正在尝试使用Java Selenium Web驱动程序单击弹出窗口中的“保存”按钮,但是它会引发异常 消息:元素当前不可见,因此可能不会与命令持续时间交互 我可以看到“保存”按钮在我的弹出窗口中处于活动状态。我不知道它抛出异常的原因。 我正在尝试单击的“保存”按钮的 HTML 代码, firepath:html/body/div[6]/div/div/div/dir[2]/div/div//bu

  • 我在实现基于注释的Spring Security时遇到了一个问题。 当我从我的angular UI发布数据时,它攻击了Spring Security,但是根本没有进入登录尝试。我不知道我哪里做错了。 我的无状态登录过滤器是: 我的Spring Security配置文件是: 当我启动我的服务器时,它会进入StatesLoginFilter构造函数。但是,当我访问我的页面时,它直接显示我访问被拒绝,而

  • 我正在将Symfony 3.1与FOSUserBundle一起使用。 我读了Symfony中的文档和集成的FOS,在这里好吧,注册似乎运行良好,并将数据持久化到数据库,但是,如果我尝试登录,我会再次被重定向到作为匿名用户的登录页面。 我检查了Symfony探查器,我可以看到当它被称为path/login\u check(在探查器中)时,用户结果是经过身份验证的,但是在/login\u check阶