提问人:Nuke_Brain 提问时间:10/21/2023 更新时间:10/21/2023 访问量:34
如何在 selenium java 中单击轮播中的链接?
How to click a link inside a carousel in selenium java?
问:
请参阅此链接: https://bluelinetourpackage.com/Web 里面有一个 KNOW MORE 按钮,每次我使用 xpath 并使用 selenium java 单击它时,它都不会做任何事情。任何人请帮助我,我是学习 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 代码,但它不起作用
答:
0赞
Yaroslavm
10/21/2023
#1
不要使用完整的 xpathes,这是不好的做法。尝试改用指向元素的唯一定位器。
在您的情况下,轮播有几个项目。Item 的类是 。
当项目出现在视口中时,它将获得额外的类。
所以当前可见项的定位器是 。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();
评论
0赞
Nuke_Brain
10/22/2023
对我有用,只需很少的调整,代码适用于旧版本的 selenium。对于较新的版本,它将是: WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10));driver.get(“bluelinetourpackage.com/Web”);WebElement 按钮 = wait.until(ExpectedConditions.presenceOfElementLocated(By.cssSelector(“.carousel-item.active a[href]”)));button.click();[/代码块]
评论