获取特定类-selenium webdriver(java)下/下的所有链接

时间:2016-08-08 12:21:04

标签: java eclipse selenium-webdriver selenium-chromedriver

有没有办法获取特定类下的所有链接?

问题是,我正在编写一个测试,要求我点击一个随机item/product,但如果通过By.tagName("a")创建所有链接的列表,它将获取所有链接这页纸。更确切地说,请考虑this website,现在我想要随机选择pretsummer saleaccessoriesbt lawn'16,{{ 1}},sale或点击lookbook后,我想随机点击其下的其中一个产品。任何想法怎么做?

这是我的程序片段:

https

2 个答案:

答案 0 :(得分:0)

如果您想从您提到的网站中选择所有课程,请使用以下xpath:

List<WebElement> allMenus = driver.findElements(By.xpath(".//a[contains(@class, 'level0')]"));

然后遍历WebElements以进入所需的菜单项。此外,观察到在鼠标悬停在特定项目上之后显示子菜单项。要执行鼠标悬停操作,我们必须使用Actions类。请找到以下代码供您参考。

Actions mouseHovers = new Actions(driver);
// Looping through the menu items stored in the above list variable
for(WebElement eachMenu : allMenus) {
    mouseHovers.moveToElement(eachMenu).perform();
    // Select the desired sub-menu by using the above line of code by replacing the "eachMenu" element with the respective sub-menu element.
}

希望这有帮助。

答案 1 :(得分:0)

实际上,您使用不正确的xpath来查找pretsummer saleaccessoriesbt lawn'16salelookbook,链接尝试如下: -

List<WebElement> allLinks = driver.findElements(By.cssSelector("a.level0"));
Random random = new Random();
WebElement randomLink = allLinks.get(random.nextInt(allLinks.size()));
randomLink.click();