我是Selenium的初学者。
我有一个非常长的可滚动表单,自动脚本将填充,是否有一种方法,我可以在每次向下滚动页面时截取屏幕截图(网页驱动程序滚动填充表单,我没有'编写脚本以在Web驱动程序处理时向下滚动),以便可以在多个屏幕截图中捕获整个表单。
答案 0 :(得分:0)
您可以根据需要捕获尽可能多的屏幕截图。在填写每一列后,填写每个第三列,无论如何。
或者您可以让webdriver填写整个表单并使用press pgup / pgdn模拟向上/向下滚动:
import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.KeyEvent;
Robot rob = new Robot();
rob.keyPress(KeyEvent.VK_PAGE_DOWN);
rob.keyRelease(KeyEvent.VK_PAGE_DOWN);
答案 1 :(得分:0)
我将如何做到这一点。在每次滑动时,您都可以截取屏幕截图,如步骤屏幕截图。
以下是屏幕截图的代码部分:
public static String takeScreenshot(WebDriver driver) {
driver.get("http://www.google.com/");
File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
// Now you can do whatever you need to do with it, for example copy somewhere
File dest = new File("c:\\tmp\\screenshot.png");
FileUtils.copyFile(scrFile, dest);
return dest.getAbsolutePath();
}
以下是垂直滑动的代码:
public static void swipeVertical(WebDriver driver) {
Dimension size = driver.manage().window().getSize();
System.out.println(size);
int starty = (int) (size.height * 0.70);
int endy = (int) (size.height * 0.30);
int startx = size.width / 2;
new TouchAction(driver)
.press(startx, starty)
.waitAction(Duration.ofMillis(1000))
.moveTo(startx, endy)
.release()
.perform();
}
所以我的伪代码看起来像这样:
...
重复直到结束......