Selenium webdriver 如何使用Java在Selenium中拍摄可滚动屏幕截图?

Selenium webdriver 如何使用Java在Selenium中拍摄可滚动屏幕截图?,selenium-webdriver,Selenium Webdriver,我是硒的初学者 我有一个很长的可滚动表单,它将由自动化脚本填充,是否有一种方法可以在每次向下滚动页面时截图(web驱动程序滚动以填充表单,我没有编写脚本以向下滚动,因为web驱动程序负责处理表单),这样整个表单可以在多个屏幕截图中捕获 您可以捕获任意数量的屏幕截图。填完每一列,填完第三列,随便什么 或者,您可以让webdriver填写整个表单,并使用按pgup/pgdn simulation向上/向下滚动: import java.awt.AWTException; import java.aw

我是硒的初学者


我有一个很长的可滚动表单,它将由自动化脚本填充,是否有一种方法可以在每次向下滚动页面时截图(web驱动程序滚动以填充表单,我没有编写脚本以向下滚动,因为web驱动程序负责处理表单),这样整个表单可以在多个屏幕截图中捕获

您可以捕获任意数量的屏幕截图。填完每一列,填完第三列,随便什么

或者,您可以让webdriver填写整个表单,并使用按pgup/pgdn simulation向上/向下滚动:

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);

我会这样做的。每次轻扫都可以截图,就像步骤截图一样

以下是截图的部分代码:

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();
    }
因此,我的伪代码如下所示:

  • WebDriver=initDriver()
  • 加载页面和元素
  • 输入文本(文本)
  • 截图(司机)
  • 刷卡(司机)

    重复直到结束