Существует несколько способов сделать скриншот с помощью Selenium WebDriver
Ниже приведены различные методы Java сделать снимок экрана :
Использование getScreenshotAs()
из TakesScreenshot Интерфейс:
Кодовый блок:
package screenShot;
import java.io.File;
import java.io.IOException;
import org.apache.commons.io.FileUtils;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
public class Firefox_takesScreenshot {
public static void main(String[] args) throws IOException {
System.setProperty("webdriver.gecko.driver", "C:\\Utility\\BrowserDrivers\\geckodriver.exe");
WebDriver driver = new FirefoxDriver();
driver.get("https://login.bws.birst.com/login.html/");
new WebDriverWait(driver, 20).until(ExpectedConditions.titleContains("Birst"));
File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(scrFile, new File(".\\Screenshots\\Mads_Cruz_screenshot.png"));
driver.quit();
}
}
Снимок экрана:
[1146]
Если на веб-странице включена jquery , вы можете использовать ashot из ] библиотека пазона / ашота :
Блок кода:
package screenShot;
import java.io.File;
import javax.imageio.ImageIO;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
import ru.yandex.qatools.ashot.AShot;
import ru.yandex.qatools.ashot.Screenshot;
import ru.yandex.qatools.ashot.shooting.ShootingStrategies;
public class ashot_CompletePage_Firefox {
public static void main(String[] args) throws Exception {
System.setProperty("webdriver.gecko.driver", "C:\\Utility\\BrowserDrivers\\geckodriver.exe");
WebDriver driver = new FirefoxDriver();
driver.get("https://jquery.com/");
new WebDriverWait(driver, 20).until(ExpectedConditions.titleContains("jQuery"));
Screenshot myScreenshot = new AShot().shootingStrategy(ShootingStrategies.viewportPasting(100)).takeScreenshot(driver);
ImageIO.write(myScreenshot.getImage(),"PNG",new File("./Screenshots/firefoxScreenshot.png"));
driver.quit();
}
}
Снимок экрана:
Использование селена-ставни из утверждают, что / селен -shutterbug библиотека:
Блок кода:
package screenShot;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import com.assertthat.selenium_shutterbug.core.Shutterbug;
import com.assertthat.selenium_shutterbug.utils.web.ScrollStrategy;
public class selenium_shutterbug_fullpage_firefox {
public static void main(String[] args) {
System.setProperty("webdriver.gecko.driver", "C:\\Utility\\BrowserDrivers\\geckodriver.exe");
WebDriver driver = new FirefoxDriver();
driver.get("https://www.google.co.in");
Shutterbug.shootPage(driver, ScrollStrategy.BOTH_DIRECTIONS).save("./Screenshots/");
driver.quit();
}
}
Снимок экрана:
Есть несколько сторонних расширений, которые помогут вам легко сделать это. Попробуйте ELabel . Это работает следующим образом:
var label = new ELabel(new GLatLng(44.3,-78.8), "Utopia", "style1");
map.addOverlay(label);
Вы можете преобразовать широту и долготу в пиксельное смещение внутри блока карты с помощью метода fromLatLngToDivPixel объекта GMap2.
Чтобы показать в этом блоке div пиксельное смещение, вам нужно прикрепить его к соответствующему div карты. Карта фактически состоит из нескольких слоев div, называемых панелями. Вы можете получить доступ к div для конкретной панели, используя метод GMap2.getPane . Вы можете попробовать вставить свой div на любую из панелей, описанных в перечислении GMapPane .
Итак, чтобы подвести итог: