如何获得菜单选项的数量----硒

时间:2018-08-03 10:05:16

标签: java selenium

我正在学习硒。我想统计“测试”菜单的菜单选项。

网站网址: https://www.guru99.com/

我的代码是:

List<WebElement> Options=driver.findElements(By.xpath("//ul[@class='maximenuck2']//li//a[@class='maximenuck']//span"));
System.out.println("Size>>>>>>>"+Options.size());

控制台输出为: Size>>>>>>>0

2 个答案:

答案 0 :(得分:2)

您需要先单击“测试”菜单,然后找到“测试”菜单的“子菜单”选项。

修改后的代码:

//To Click on the Testing Menu
driver.findElement(By.xpath("//*[@id='g-navigation']//ul[@class=' maximenuck']/li//span[text()='Testing']")).click();

List<WebElement> Options=driver.findElements(By.xpath("//div[@class='floatck submenuck118']//ul[@class='maximenuck2']/li"));
System.out.println("Size>>>>>>>"+Options.size());

输出:

大小>>>>>>> 20

编辑:

说明:

在HTML中,类名[maximenuck中存在一些额外的空间。但是您在xpath中使用了[@class='maximenuck'],因此它返回的计数为0

因此,您可以将xpath修改为//ul[@class='maximenuck2']//li//a[contains(@class,'maximenuck')]//span。 (以避免多余的空间问题)

但是,xpath //ul[@class='maximenuck2']//li//a[contains(@class,'maximenuck')]//span将从所有菜单(例如,测试,SAP,大数据...)中找到所有子菜单。

为了获取与测试相关的子菜单,您需要在xpath中添加其他一些唯一的引用,如下所示:

Xpath 1: //div[@class='floatck submenuck118']//ul[@class='maximenuck2']/li

我刚刚在您的Xpath之前添加了一些唯一的标识

Xpath 2 //div[@class='floatck submenuck118']//ul[@class='maximenuck2']//li//a[contains(@class,'maximenuck')]//span

答案 1 :(得分:0)

改为使用By.cssSelector(".submenuck118 .titreck")