如何使用Selenium创建Gmail帐户,我遇到了月份和国家/地区的问题

时间:2016-07-22 06:56:09

标签: selenium-webdriver

我想使用select class选择Gmail月份和国家/地区下拉列表,但它会显示错误,如

  

元素应该是"选择"但是" div"

我使用actions类处理但不使用select类处理。我尝试使用x path,id和class但是我没有得到。我是硒的新手。

这是我的代码。

d.get("https://accounts.google.com/SignUp?continue=https%3A%2F%2Faccounts.google.com%2FManageAccount");
    d.manage().window().maximize();
    Select s=new Select(d.findElement(By.id("BirthMonth")));
    s.selectByIndex(5);
    System.out.println("may slected...");

2 个答案:

答案 0 :(得分:2)

正如我在here看到的月份下拉框实际上不是select元素,您应该尝试使用Actions,如下所示:

WebDriverWait wait = new WebDriverWait(d, 10);
Actions builder = new Actions(d);

WebElement selectMonth = wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//div[@title = 'Birthday']")));
builder.mouse.mouseMove(((Locatable)selectMonth).coordinates);      
selectMonth.click();

WebElement option = wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//div[text() = 'May']")));
builder.mouse.mouseMove(((Locatable)option).coordinates);   
option.click();
System.out.println("may slected...");

已修改:如果您想要点击BirthMonth下拉列表,请点击所有月份,如下所示:

WebElement selectMonth = wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//div[@title = 'Birthday']")));
builder.mouse.mouseMove(((Locatable)selectMonth).coordinates);      
selectMonth.click();

List<WebElement> allmonths = wait.until(ExpectedConditions.presenceOfAllElementsLocatedBy(By.cssSelector("span#BirthMonth > div.goog-menu.goog-menu-vertical")));
for(WebElement el : allmonths) {
            System.out.println(el.getText())
}

但请注意,如果目的是创建大量GMail帐户,Google会很快关闭这些尝试,并会开始返回服务器错误或应用IP阻止。

答案 1 :(得分:0)

而不是每次都根据Google政策创建多个测试帐户。

而是http://www.codestore.net/store.nsf/unid/BLOG-20111201-0411

中提到的用户策略

myaccount@gmail.com

myaccount+today_date_time@gmail.com