selenium web驱动程序中的Gmail注销功能

时间:2014-03-05 16:38:13

标签: selenium selenium-webdriver

我是selenium webdrive的初学者,并尝试为gmail登录和注销制作代码,但无法通过“Id”注销,如果有人建议如何注销它,对我有帮助。以下是我所做的代码,请检查并建议:

public class seleniumExample {
    public static WebDriver driver;
    public static WebElement element, element1;

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        // Intialize chrome driver
        driver = new FirefoxDriver();
        driver.get("http://www.gmail.com");
        element = driver.findElement(By.id("Email"));
        element.sendKeys("xyz@gmail.com");
        driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
        element1 = driver.findElement(By.id("Passwd"));
        element1.sendKeys("xyz");
        element.submit();
        driver.findElement(By.id("gbi4m1")).click(); 
        driver.findElement(By.id("gb_71")).click(); 
    }

}

6 个答案:

答案 0 :(得分:4)

以下ID:gbi4m1并未指向任何内容。这导致您的测试用例失败。正如我之前所说,谷歌不是一个学习硒的合适场所,页面很复杂,如果你是初学者,动态id很难处理。

通常在浏览器中,您可以使用开发工具检查选择器是否可用于定位元素。因此,在您在代码中实际使用特定选择器之前,您可以验证它是否有效。这将节省大量时间。

使用此功能的另一个好处是检查选择器的唯一性。如果有多个元素具有相同的选择器,findElement()将返回第一个元素。在这 如果选择器有效但它不是唯一的,这反过来会导致测试用例失败。

如果选择器是唯一的,则控制台仅显示一个元素。

让我用一个简单的例子解释

要点击此页面右上角的提问> 按钮,以下选择器即可使用。

css = #nav-askquestion

现在您可以使用浏览器的开发工具进行确认。

只需在控制台上输入$('selector_to_check'),它就会显示与此选择器相关的所有元素。

我使用过Chrome:

enter image description here

如果输入的选择器无效,则显示空数组。

答案 1 :(得分:0)

首先,你正在服用的id不存在。这样就行不通了。其次,一旦您正确识别退出按钮,我们就可以更容易地确定问题的确切性质

答案 2 :(得分:0)

我不知道你在哪里得到“gbi4m1”?无论如何为什么不使用By.className

driver.findElement(By.className("gb_O")).click();
 driver.findElement(By.id("gb_71")).click(); 

似乎为我工作

答案 3 :(得分:0)

使用cssSelector,以下代码为我工作

  1. //点击右上角的个人资料图片 。driver.findElement(By.cssSelector( “span.gb_3a.gbii”))点击(); //单击“注销”按钮 。driver.findElement(By.id( “gb_71”))点击(); //关闭浏览器 window driver.close();

答案 4 :(得分:0)

这是selenium webdriver

中gmail注销的绝佳代码
driver.findElement(
        By.xpath("//*[@id='gb']/div[1]/div[1]/div[2]/div[5]/div[1]/a/span"))
        .click();
driver.findElement(By.id("gb_71")).click();

答案 5 :(得分:-1)

以下代码对我有用: -

driver.findElement(
        By.xpath("//*[@id='gb']/div[1]/div[1]/div[2]/div[5]/div[1]/a/span"))
        .click();
driver.findElement(By.id("gb_71")).click();

我使用xpath查找帐户图标,它对我来说很好。