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

获取特定类selenium webdriver(java)下/中的所有链接,java,eclipse,selenium-webdriver,selenium-chromedriver,Java,Eclipse,Selenium Webdriver,Selenium Chromedriver,是否有方法获取特定类下的所有链接 问题是,我正在编写一个测试,要求我随机点击一个项目/产品,但是如果a通过By.tagName(“a”),创建一个所有链接的列表,它将获取页面上的所有链接。更确切地说,考虑一下,现在我想从 PRET >代码>暑期< /代码>代码>销售,附件, BT草坪'16/代码>,销售> /代码>,代码>查找书< /代码>或点击夏令时>代码>后,我想随机点击其中的一个产品。知道怎么做吗 以下是我的程序片段: 如果要从您提到的站点中选择所有类,请使用以下xpath: List&

是否有方法获取特定类下的所有链接

问题是,我正在编写一个测试,要求我随机点击一个
项目/产品
,但是如果a通过
By.tagName(“a”)
,创建一个所有链接的列表,它将获取页面上的所有链接。更确切地说,考虑一下,现在我想从<代码> PRET <代码> >代码>暑期< /代码>代码>销售,<代码>附件<代码>,<代码> BT草坪'16/代码>,<代码>销售> /代码>,代码>查找书< /代码>或点击<代码>夏令时>代码>后,我想随机点击其中的一个产品。知道怎么做吗

以下是我的程序片段:


如果要从您提到的站点中选择所有类,请使用以下xpath:

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

希望这能有所帮助。

事实上,您正在使用不正确的
xpath
来定位
pret
summer
sale
附件
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();
List allLinks=driver.findElements(By.cssSelector(“a.level0”);
随机=新随机();
WebElement randomLink=allLinks.get(random.nextInt(allLinks.size());
随机链接。单击();

是否要随机单击每次跑步??你的代码有什么问题?是的,我希望在每一个回合中随机点击,但我希望在页面的特定区域/页面上的某些特定链接上随机点击。但是我上面写的代码将获取当前页面上的所有链接OK查看答案,它将随机单击这些
pret
summer
sale
附件
bt lawn'16
sale
lookbook
链接…)我不想选择所有的类,我想选择该类中的所有链接。例如,我想要product-list类下的所有产品链接。那么从我得到的信息来看,它将创建一个WebElement列表,其中包含第10级的所有链接,即夏季销售等,然后web element randomlink从该列表中随机选择并单击它?@SaraIftikhar,是,但是它的类是
level0
而不是
level10
…)非常感谢。但是有没有办法通过xpath而不是css选择器来实现呢?这个方法工作得非常好,只是想知道是否存在更多的方法…@SaraIftikhar我建议您,始终优先考虑CSSSselector,因为它比xpath快得多,如果您想知道xpath,因为它非常简单,
//a[contains(@class,'level0')]
。)嘿,还有一件事,有没有一种简单的方法可以找出链接与哪个类关联?我通常使用xpath,所以如果必须使用css选择器,我会手动查看代码以查看它所属的类
List<WebElement> allLinks = driver.findElements(By.cssSelector("a.level0"));
Random random = new Random();
WebElement randomLink = allLinks.get(random.nextInt(allLinks.size()));
randomLink.click();