如何在没有 name/id 的 IFRAME 中移动滑块?
How to move Slider in an IFRAME that doesn't have a name/id?
我无法移动 IFRAME 部分中的滑块:https://jqueryui.com/slider/
此页面上的 IFRAME 没有名称或 ID。
代码:
public class MovingSlider {
public static void main(String[] args)
{
WebDriverManager.chromedriver().setup();
WebDriver driver = new ChromeDriver();
driver.manage().timeouts().pageLoadTimeout(Duration.ofSeconds(10));
driver.get("https://jqueryui.com/slider/");
driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));
driver.switchTo().frame(1);
WebElement slider = driver.findElement(By.xpath("//div[@id = 'slider']/span"));
new Actions(driver).dragAndDropBy(slider, 400,0).click();
}
}
问题是 dom 仅包含一个索引为“0”的帧,而您试图切换到实际上不存在的索引“1”帧。
以下是适合您的代码片段。
WebDriverManager.chromedriver().setup();
WebDriver driver = new ChromeDriver();
driver.manage().timeouts().pageLoadTimeout(Duration.ofSeconds(10));
driver.get("https://jqueryui.com/slider/");
driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));
Integer size = driver.findElements(By.tagName("iframe")).size();
System.out.println("Total iFrame is " + size);
driver.switchTo().frame(0);
WebElement slider = driver.findElement(By.xpath("//div[@id = 'slider']/span"));
// WebElement slider = driver.findElement(By.cssSelector("#slider > span"));
new Actions(driver).dragAndDropBy(slider, 400, 0).build().perform();
此页面上的 IFRAME 没有名称或 ID。
代码:
public class MovingSlider {
public static void main(String[] args)
{
WebDriverManager.chromedriver().setup();
WebDriver driver = new ChromeDriver();
driver.manage().timeouts().pageLoadTimeout(Duration.ofSeconds(10));
driver.get("https://jqueryui.com/slider/");
driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));
driver.switchTo().frame(1);
WebElement slider = driver.findElement(By.xpath("//div[@id = 'slider']/span"));
new Actions(driver).dragAndDropBy(slider, 400,0).click();
}
}
问题是 dom 仅包含一个索引为“0”的帧,而您试图切换到实际上不存在的索引“1”帧。
以下是适合您的代码片段。
WebDriverManager.chromedriver().setup();
WebDriver driver = new ChromeDriver();
driver.manage().timeouts().pageLoadTimeout(Duration.ofSeconds(10));
driver.get("https://jqueryui.com/slider/");
driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));
Integer size = driver.findElements(By.tagName("iframe")).size();
System.out.println("Total iFrame is " + size);
driver.switchTo().frame(0);
WebElement slider = driver.findElement(By.xpath("//div[@id = 'slider']/span"));
// WebElement slider = driver.findElement(By.cssSelector("#slider > span"));
new Actions(driver).dragAndDropBy(slider, 400, 0).build().perform();