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();