有没有办法获取特定类下的所有链接?
问题是,我正在编写一个测试,要求我点击一个随机item/product
,但如果通过By.tagName("a")
创建所有链接的列表,它将获取所有链接这页纸。更确切地说,请考虑this website,现在我想要随机选择pret
,summer
sale
,accessories
,bt lawn'16
,{{ 1}},sale
或点击lookbook
后,我想随机点击其下的其中一个产品。任何想法怎么做?
这是我的程序片段:
答案 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
来查找pret
,summer
sale
,accessories
,bt lawn'16
,sale
, lookbook
,链接尝试如下: -
List<WebElement> allLinks = driver.findElements(By.cssSelector("a.level0"));
Random random = new Random();
WebElement randomLink = allLinks.get(random.nextInt(allLinks.size()));
randomLink.click();