目前,我正在做一些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"));
答案 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());
}