java - 无法在带有硒的图像轮播中一一点击
问题描述
我无法点击下方轮播中的图片,如下图所示。我尝试了很多但失败了,尽管我能够通过单击右箭头导航按钮导航到其他图像。Image Carousel 位于 Featured Vehicles 标题文本(在网站中)下方,该文本具有左右导航按钮。 网站链接:https ://ryder.com/used-trucks
以下是我尝试过的一种方法,代码如下。请我最早需要你的帮助。
public void click_Image_Carousel_To_Open_ProductDetailsPage() throws InterruptedException
{
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("arguments[0].scrollIntoView();", driver.findElement(By.xpath("//h2[contains(text(),'FEATURED VEHICLES')]")));
WebElement ele1= null;
String image_link = null;
List<WebElement> image_Carousel_Links_list = driver.findElements(By.xpath("(//div[@class='photo']/a)"));
System.out.println("Size :"+image_Carousel_Links_list.size());
WebElement image_Carousel_Next_Btn = driver.findElement(By.xpath("//BUTTON[@class='slick-next slick-arrow'][text()='Next']"));
for(int i=1;i<image_Carousel_Links_list.size();i++)
{
System.out.println(+i+")Image links :"+driver.findElement(By.xpath("(//div[@class='photo']/a)["+i+"]")).getAttribute("href"));
System.out.println(" Element : (//div[@class='photo']/a)["+i+"]");
ele1=driver.findElement(By.xpath("(//div[@class='photo']/a)["+i+"]"));
//this for loop to rediscover the elements to avoid stale element exception
for(int k=0;k<500;k++)
{
image_Carousel_Links_list = driver.findElements(By.xpath("(//div[@class='photo']/a)"));
if(driver.findElement(By.xpath("(//div[@class='photo']/a)["+i+"]")).isDisplayed())
{
ele1=driver.findElement(By.xpath("(//div[@class='photo']/a)["+i+"]"));
break;
}
click_ImageCarousel_NextButton(image_Carousel_Next_Btn);
Thread.sleep(300);
}
if(ele1.isDisplayed())
{
ele1.click();
System.out.println(i+") Clicked on the Image present in Image Carousel :" +ele1.getAttribute("href"));
Thread.sleep(3000);
driver.navigate().back();
Thread.sleep(4000);
}
else
{
System.out.println(" Image Not found in Image Carousel");
}
}
}
private void click_ImageCarousel_NextButton(WebElement image_Carousel_Next_Btn) {
image_Carousel_Next_Btn.click();
}
解决方案
推荐阅读
- apache-flink - 如何在 flink sql 表中自动生成水印?
- timezone - 更改请求中的时区
- flutter - 在画布放大、缩小并在上面带有图像的情况下进行平移后无法执行绘图
- r - 有没有办法为 plotyoutput 创建循环
- python - 如何在 Windows 11 中安装 ta-lib?
- reactjs - 如何根据工作日在 Reactjs 中的不同列上显示数据
- keras - 如何将注意力层添加到编码器解码器 seq2seq 模型?
- hugo - Gitlab 渲染 index.md 文件与本地 hugo 不同
- android - YouTube Android 内置什么语言?
- python - 程序如何区分真正的按键和 pyautogui、pywinauto 等发送的按键?