Selenium WebElement选择

时间:2015-06-03 23:48:19

标签: java selenium xpath

目前,我正在做一些Selenium的事情。在这样做的时候,我陷入了一个Xpath,这是用于出生月选择选项的Gmail帐户创建页面。我已经给出了如下的Xpath,它在Firepath和控制台中都很好看。

.//span[@id='BirthMonth']//div[2]//div//div

然而,在Java代码中,它不起作用;相反,程序正在挂起。

下面的Jave代码适用于上述Xpath。请有人建议我使用正确的Xpath。或者,如果我的代码或Xpath中有任何错误,请告诉我。

List<WebElement> gElements = Driver.findElements(By.xpath(".//span[@id='BirthMonth']//div[2]//div//div"));

2 个答案:

答案 0 :(得分:0)

您正在尝试单击具有display:none属性的div。请参阅以下代码:

driver.findElement(By.xpath("//span[@id='BirthMonth']/div[@title='Birthday']")).click();
driver.findElement(By.xpath("//span[@id='BirthMonth']/div[2]/div[1]/div")).click();

当点击第一个div内部时,然后显示div [2]及其所有子项。

答案 1 :(得分:0)

使用以下行将显示所有出生月份的列表:

 driver.findElement(By.xpath("//span[@id='BirthMonth']/div")).click();
 List<WebElement> listOfMonths= driver.findElements(By
            .xpath("//div[@class='goog-menu goog-menu-vertical']"));
 System.out.println("Total months: " + listOfMonths.size());
 for (int i = 0; i < listOfMonths.size(); i++) {
     System.out.println("MonthName: " + listOfMonths.get(i).getText());
 }