我是selenium的新手,正在尝试一些可以让我的工作变得更轻松的东西。
这是一个网址 - https://www.starz.com/movies
我想点击热门类别下页面右下角的箭头按钮,但我不能。此外,我必须多次点击它,直到所有电影都加载到该类别下。
这是我尝试的一些代码。
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class selenium {
public static void main(String args[]) throws InterruptedException {
WebDriver driver = new FirefoxDriver();
driver.get("https://www.starz.com/movies");
System.setProperty("webdriver.gecko.driver", "C:\\Selenium\\geckodriver.exe");
driver.findElement(By.id("popular")).click();
}
}
上面的代码有效,但它不会点击箭头按钮,而是点击放置在热门类别下的中心的电影。
答案 0 :(得分:0)
您需要点击<button>
元素而不是<div>
:
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class selenium {
public static void main(String args[]) throws InterruptedException {
WebDriver driver = new FirefoxDriver();
driver.get("https://www.starz.com/movies");
System.setProperty("webdriver.gecko.driver", "C:\\Selenium\\geckodriver.exe");
driver.findElement(By.xpath("//div[@id='popular']//button[@class='slider-next slick-arrow']")).click();
}
}
答案 1 :(得分:0)
By.id("popular")
将为您提供整行。所有箭头都具有相同的类sz-icon-arrow-next
,因此您需要使用常用行和箭头定位器来定位箭头
driver.findElement(By.cssSelector("#popular .sz-icon-arrow-next")).click();
修改强>
如果要单击箭头到最后,请将其放入列表并检查其是否仍然存在
int size = 1;
while (size > 0) {
List<WebElement> arrow = driver.findElements(By.cssSelector("#popular .sz-icon-arrow-next"));
size = arrow.size();
if (size > 0) {
arrow.get(0).click();
}
}