【问题标题】:How to logout gmail using selenium script?如何使用 selenium 脚本注销 gmail?
【发布时间】:2014-06-19 10:31:00
【问题描述】:

我正在为 Gmail 登录和注销功能编写 selenium 脚本。我可以使用以下代码成功登录。

//Open gmail
         driver.get("http://www.gmail.com");

         // Enter userd id
         WebElement element = driver.findElement(By.id("Email"));
         element.sendKeys("xyz@gmail.com");

         //wait 5 secs for  userid to be entered
         driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);

         //Enter Password
         WebElement element1 = driver.findElement(By.id("Passwd"));
         element1.sendKeys("Password");

         //Submit button
         element.submit();

但我无法编写注销脚本。可以给我提供注销脚本吗?

谢谢!

【问题讨论】:

  • 除非您有特殊需要,否则您为什么要尝试使用 Selenium 通过 Gmail 实现自动化?他们有大量的 API,让您无需浏览器即可登录/阅读电子邮件/发送电子邮件。
  • 扩展@Arran 所说的内容:除非您具有针对其他人的服务器运行自动化的特定权限,否则这是将您的 IP 列入黑名单的好方法。

标签: java selenium automation


【解决方案1】:

尝试自动化 Gmail 是一个非常糟糕的主意。首先,这违反了 Google 的政策,当您注册 Gmail 时,您接受了不会自动执行的条款和条件。话虽如此,有很多有效的方法可以连接到您的 Gmail 帐户。其中一种方法是使用 IMAP 客户端,如 IMAP4。使用它,您可以连接到您的 Gmail、浏览收件箱、删除邮件、退出等。通过这样做,您不必担心 UI 部分的自动化。此外,Google 经常更改其 UI 只是为了阻止人们自动化它,所以如果您自动化 Gmail UI,那么它今天可能会工作,但几天后就不会工作了。 通过此链接,您应该能够在几分钟内在您的测试中实现 IMAP4: http://mailsystem.codeplex.com/discussions/269058

【讨论】:

  • 我想使用 gmail 来了解 Selenium。他们通常很宽容,但是......也许可以使用一个好的替代网站?
  • @Thufir Try w3schools.com 他们有许多不同技术的功能示例,您可以尝试自动化。
【解决方案2】:

试试下面的代码。

driver.findElement(By.className("gb_Ta")).click(); // To click the flyout menu
driver.findElement(By.className("gb_71")).click(); // To click the sign out button

【讨论】:

    【解决方案3】:

    试试下面的代码 driver.findElement(By.xpath("//*[@id='gb']/div[1]/div[1]/div/div[3]/div[1]/a")).click( );

        // click on actual logout button step 2
        driver.findElement(By.id("gb_71")).click();
    
        //closing the webdriver window after successful completion of the test
        driver.close();
    

    【讨论】:

      【解决方案4】:
      WebDriverWait wait=new WebDriverWait(driver,50);
      WebElement logout=driver.findElement(By.cssSelector("span.gb_4.gbii"));
      logout.click();
      WebElement signout=driver.findElement(By.id("gb_71"));
      signout.click();
      

      【讨论】:

      • 您应该添加评论,讨论为什么这是一个答案。解释它为什么起作用。
      【解决方案5】:

      登录 gmail 后,尝试使用此代码注销:-

      driver.findElement(By.xpath("//span[@class='gb_7 gbii']")).click(); driver.findElement(By.id("gb_71")).click();

      【讨论】:

        【解决方案6】:
        use xpath 
        
        // Click on the image icon present in the top right navigational Bar
        driver.findElement(By.xpath("//div[@class='gb_1 gb_3a gb_nc gb_e']/div/a")).click();
        //Click on 'Logout' Button
        driver.findElement(By.xpath("//*[@id='gb_71']")).click();
        //Close the browser.
        driver.close();
        

        【讨论】:

          【解决方案7】:

          使用 cssSelector

          //Click on the profile image present in the right top corner
          driver.findElement(By.cssSelector("span.gb_3a.gbii")).click();
          //Click on 'Sign Out' button
          driver.findElement(By.id("gb_71")).click();  //Close the browser
          window driver.close();
          

          【讨论】:

            【解决方案8】:

            使用cssselector

            driver.findElement(By.cssSelector("span.gb_8a.gbii")).click();
            driver.findElement(By.id("gb_71")).click();
            

            【讨论】:

            • 你真的应该添加一些解释为什么这应该工作 - 你也可以添加代码以及代码本身中的 cmets - 在当前的形式中,它没有提供任何可以帮助的解释社区的其他人了解您为解决/回答问题所做的工作。这对于较早的问题和已经有答案的问题尤其重要。
            • 它起作用的原因是第一次 driver.findElement.click() 点击用户的个人资料图标(在 gmail 窗口的右上角),这会导致一个下拉框打开,其中包含注销链接它。退出链接的 ID 为 gb_71。不客气。另外,Arran 的评论是一个更好的主意,使用 API 不要自动单击按钮。未来的 gmail 更新很可能会破坏您的脚本。
            【解决方案9】:

            试试这个代码,使用 selenium webdriver 退出 gmail。它对我有用

            driver.findElement(By.cssSelector(".gb_b.gb_db.gb_R")).click();
            Thread.sleep(5000);// Click on the image icon present in the top 
            

            右侧导航栏

            driver.findElement(By.cssSelector(".gb_Fa.gb_Pe.gb_We.gb_wb")).click();
            Thread.sleep(5000); //Signout button
            

            【讨论】:

              猜你喜欢
              • 2019-02-01
              • 2014-10-17
              • 2017-11-24
              • 2014-02-14
              • 1970-01-01
              • 2021-08-01
              • 2011-04-14
              • 2015-03-17
              • 2017-04-21
              相关资源
              最近更新 更多