如果我点击一个按钮,它将打开模态,我必须填写表格并单击提交按钮。 能够填写表格,直到默认情况下在模态中可见的那些字段。 但是无法填充仅在向下滚动后可见的其他字段。
针对上述问题是否有任何解决方案。 对于那些元素
答案 0 :(得分:0)
您需要先向下滚动到元素,然后执行sendKeys之类的操作。您还需要申请等待。
您可以使用org.openqa.selenium.interactions.Actions
类移动到元素:
WebElement element = driver.findElement(By.id("my-id"));
Actions actions = new Actions(driver);
actions.moveToElement(element);
actions.perform();
对于没有元素的向下滚动:
WebDriver driver = new FirefoxDriver();
JavascriptExecutor jse = (JavascriptExecutor)driver;
jse.executeScript("window.scrollBy(0,250)", "");
OR
jse.executeScript("scroll(0,250)");
尝试以下代码: -
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("javascript:window.scrollBy(250, 350)");
尝试使用Sankalp代码
完整代码示例如: -
driver.get("https://jquery.com/");
try {
Thread.sleep(6000);
} catch (InterruptedException e) {
e.printStackTrace();
}
JavascriptExecutor js = (JavascriptExecutor) driver;
WebElement element = driver.findElement(By.xpath("//*[@id=\"legal\"]/ul/li[1]/a"));
js.executeScript("arguments[0].scrollIntoView(true);",element);
System.out.println("Done");
答案 1 :(得分:0)
在编写剩余代码
之后,您需要先滚动才能显示这些元素WebDriver driver = new FirefoxDriver();
JavascriptExecutor jse = (JavascriptExecutor)driver;
jse.executeScript("scroll(0,400)");//This will scroll page 400 pixel vertical
答案 2 :(得分:0)
除了回答@Shoaib Akhtar之外,您还可以使用JavascriptExecutor
滚动到元素
// Create instance of Javascript executor
JavascriptExecutor je = (JavascriptExecutor) driver;
//Identify the WebElement which will appear after scrolling down
WebElement element = driver.findElement("Locator");
// now execute query which actually will scroll until that element is not appeared on page.
je.executeScript("arguments[0].scrollIntoView(true);",element);
//and then code for operations