我正在学习硒。我想统计“测试”菜单的菜单选项。
网站网址: 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
答案 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")