Selenium 如何点击轮播中的链接

Selenium 如何点击轮播中的链接

问题描述

查看此链接: https://bluelinetourpackage.com/Web 在里面有一个“了解更多”按钮,它位于一个轮播图内。每次我使用Selenium Java来找到xpath并点击它时,它都不起作用。请帮助我,我是一个学习Selenium Java的学生。

driver.findElement(By.xpath("/html[1]/body[1]/section[2]/div[1]/div[1]/div[1]/div[1]/a[1]")).click();

这是我点击链接的代码,但它没有起作用。

我已经取得了xpath并将其放入findElement代码中,但它没有起作用。

解决方案

不要使用完整的xpath,这是不好的做法。尝试使用指向您的元素的唯一定位符。

在您的例子中,轮播图有几个项。项的类是 carousel-item 。 当项出现在视口中时,它会获得额外的类 active 。 因此,当前可见项目的定位符是 .carousel-item.active

唯一剩下的是按钮定位符。按钮实际上是一个单独的 a ,在某个 href 的容器中。

现在我们获得了当前活动项的完整唯一定位符,它是 .carousel-item.active a[href]

WebDriverWait wait = new WebDriverWait(driver, 10);
driver.get("https://bluelinetourpackage.com/Web");

WebElement button = wait.until(ExpectedConditions.presenceOfElementLocated(By.cssSelector(".carousel-item.active a[href]")));
button.click();

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程