我想使用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...");
答案 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