সেলেনিয়াম ওয়েবড্রাইভার ব্যবহার করে স্ক্রিনশট নেওয়া সম্ভব কিনা তা কি কেউ জানেন? (দ্রষ্টব্য: সেলেনিয়াম আরসি নয়)
সেলেনিয়াম ওয়েবড্রাইভার ব্যবহার করে স্ক্রিনশট নেওয়া সম্ভব কিনা তা কি কেউ জানেন? (দ্রষ্টব্য: সেলেনিয়াম আরসি নয়)
উত্তর:
হ্যা এটা সম্ভব. নিম্নলিখিত উদাহরণটি জাভাতে রয়েছে:
WebDriver driver = new FirefoxDriver();
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
FileUtils.copyFile(scrFile, new File("c:\\tmp\\screenshot.png"));
/tmp
এটির নিজস্ব ফাইল সিস্টেমে থাকা সাধারণ, এবং ফায়ারফক্সড্রাইভার এতে স্ক্রিনশট লিখে /tmp
।
HtmlUnitDriver
কার্যকর করা হয়নি TakesScreenshot
( সমর্থিত ড্রাইভারের তালিকার জন্য selenium.googlecode.com/git/docs/api/java/org/openqa/selenium/… দেখুন )। তবে আপনি এইচটিএমএল হিসাবে সংরক্ষণ করতে পারেন।
org.apache.commons.io.FileUtils
প্রতিটি ওয়েবড্রাইভারের একটি .save_screenshot(filename)
পদ্ধতি থাকে। ফায়ারফক্সের জন্য, এটি এর মতো ব্যবহার করা যেতে পারে:
from selenium import webdriver
browser = webdriver.Firefox()
browser.get('http://www.google.com/')
browser.save_screenshot('screenie.png')
বিভ্রান্তিকরভাবে, একটি .get_screenshot_as_file(filename)
পদ্ধতিও বিদ্যমান যা একই কাজ করে।
এর জন্যও রয়েছে পদ্ধতি: .get_screenshot_as_base64()
(এইচটিএমএল এম্বেড করার জন্য ) এবং .get_screenshot_as_png()
(বাইনারি ডেটা পুনরুদ্ধারের জন্য)।
এবং নোট করুন যে ওয়েবএলিমেন্টগুলির একটি .screenshot()
পদ্ধতি রয়েছে যা একইভাবে কাজ করে তবে কেবলমাত্র নির্বাচিত উপাদানটি ক্যাপচার করে।
driver.set_window_size(1366, 728)
।
public void TakeScreenshot()
{
try
{
Screenshot ss = ((ITakesScreenshot)driver).GetScreenshot();
ss.SaveAsFile(@"D:\Screenshots\SeleniumTestingScreenshot.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
}
catch (Exception e)
{
Console.WriteLine(e.Message);
throw;
}
}
driver.takeScreenshot().then(function(data){
var base64Data = data.replace(/^data:image\/png;base64,/,"")
fs.writeFile("out.png", base64Data, 'base64', function(err) {
if(err) console.log(err);
});
});
var1
আপনি চাইলে আপনি এটি কল করতে পারেন। ইউ দিকে তাকানো উচিত takeScreenshot()
ক্রিয়া সম্পর্কে অবগত হওয়ার ঠিক কি এটা। ক্যানভাস ব্যবহার করে জাভাস্ক্রিপ্ট থেকে বাইনারি ছবি রেন্ডার হতে পারে। রেন্ডার হওয়ার আগে এটি ডোম হতে পারে। মধ্যে তাকান।
require 'rubygems'
require 'selenium-webdriver'
driver = Selenium::WebDriver.for :ie
driver.get "https://www.google.com"
driver.save_screenshot("./screen.png")
আরও ফাইলের ধরণ এবং বিকল্পগুলি উপলভ্য এবং আপনি সেগুলি_স্ক্রিনশট.আরবিতে দেখতে পারেন
headless
এবংFirefox
আমি এই সমস্যাটির সমাধান করেছি। RemoteWebDriver
এটির প্রক্সাইড ড্রাইভার প্রয়োগকৃত সমস্ত ইন্টারফেসগুলি দেওয়ার জন্য আপনি এটি বৃদ্ধি করতে পারেন :
WebDriver augmentedDriver = new Augmenter().augment(driver);
((TakesScreenshot)augmentedDriver).getScreenshotAs(...); //works this way
পিএইচপিউনিট_সেলেনিয়াম এক্সটেনশন সংস্করণ 1.2.7 ব্যবহার করে:
class MyTestClass extends PHPUnit_Extensions_Selenium2TestCase {
...
public function screenshot($filepath) {
$filedata = $this->currentScreenshot();
file_put_contents($filepath, $filedata);
}
public function testSomething() {
$this->screenshot('/path/to/screenshot.png');
}
...
}
public Bitmap TakeScreenshot(By by) {
// 1. Make screenshot of all screen
var screenshotDriver = _selenium as ITakesScreenshot;
Screenshot screenshot = screenshotDriver.GetScreenshot();
var bmpScreen = new Bitmap(new MemoryStream(screenshot.AsByteArray));
// 2. Get screenshot of specific element
IWebElement element = FindElement(by);
var cropArea = new Rectangle(element.Location, element.Size);
return bmpScreen.Clone(cropArea, bmpScreen.PixelFormat);
}
public String captureScreen() {
String path;
try {
WebDriver augmentedDriver = new Augmenter().augment(driver);
File source = ((TakesScreenshot)augmentedDriver).getScreenshotAs(OutputType.FILE);
path = "./target/screenshots/" + source.getName();
FileUtils.copyFile(source, new File(path));
}
catch(IOException e) {
path = "Failed to capture screenshot: " + e.getMessage();
}
return path;
}
import org.openqa.selenium.OutputType as OutputType
import org.apache.commons.io.FileUtils as FileUtils
import java.io.File as File
import org.openqa.selenium.firefox.FirefoxDriver as FirefoxDriver
self.driver = FirefoxDriver()
tempfile = self.driver.getScreenshotAs(OutputType.FILE)
FileUtils.copyFile(tempfile, File("C:\\screenshot.png"))
আমি স্ক্রিন শট নেওয়ার জন্য এই পদ্ধতিটি ব্যবহার করেছি।
void takeScreenShotMethod(){
try{
Thread.sleep(10000)
BufferedImage image = new Robot().createScreenCapture(new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()));
ImageIO.write(image, "jpg", new File("./target/surefire-reports/screenshot.jpg"));
}
catch(Exception e){
e.printStackTrace();
}
}
আপনি যেখানে প্রয়োজন সেখানে এই পদ্ধতিটি ব্যবহার করতে পারেন।
মনে হচ্ছে এখানে নিখোঁজ রয়েছে - জাভাতে একটি নির্দিষ্ট উপাদানের স্ক্রিনশট নেওয়া :
public void takeScreenshotElement(WebElement element) throws IOException {
WrapsDriver wrapsDriver = (WrapsDriver) element;
File screenshot = ((TakesScreenshot) wrapsDriver.getWrappedDriver()).getScreenshotAs(OutputType.FILE);
Rectangle rectangle = new Rectangle(element.getSize().width, element.getSize().height);
Point location = element.getLocation();
BufferedImage bufferedImage = ImageIO.read(screenshot);
BufferedImage destImage = bufferedImage.getSubimage(location.x, location.y, rectangle.width, rectangle.height);
ImageIO.write(destImage, "png", screenshot);
File file = new File("//path//to");
FileUtils.copyFile(screenshot, file);
}
code
এইড্রাইভার.ম্যানেজ ()। উইন্ডো ()। সেটসাইজ (নতুন মাত্রা (1680, 1050)) বাড়ানো; বা CSS এর মাধ্যমে কোনও অ প্রয়োজনীয় উপাদান অপসারণ করতে। সঠিক সমাধানটি হবে স্ক্রোলিং থেকে y-অফসেট গণনা করা।
Firefox
কাজ জরিমানা এটিতে মাত্রা ভিত্তিক পূর্ণ চিত্র থেকে উপাদান পর্দা শস্য হিসাবে। ইন Chrome
যদি উপাদান যে দৃশ্য অংশ ইমেজ থেকে স্ক্রলিং আউট দৃশ্য অংশ পাওয়া যায় এটা উপাদান জরিমানা ধারন করে না। আমরা যদি document.documentElement.clientHeight
ক্লায়েন্ট হাইটের দু'বার স্ক্রোল করার পরে স্ক্রিনশট নিতে চাই তবে (location.y)-2*clientHeight
সঠিক উপাদানটির স্ক্রিনশটটি পেতে পারি। এই পোস্টের জন্য ধন্যবাদ যেমন এটি আমাকে সহায়তা করে ...
using System;
using OpenQA.Selenium.PhantomJS;
using System.Drawing.Imaging;
namespace example.com
{
class Program
{
public static PhantomJSDriver driver;
public static void Main(string[] args)
{
driver = new PhantomJSDriver();
driver.Manage().Window.Size = new System.Drawing.Size(1280, 1024);
driver.Navigate().GoToUrl("http://www.example.com/");
driver.GetScreenshot().SaveAsFile("screenshot.png", ImageFormat.Png);
driver.Quit();
}
}
}
নিউগেটপ্যাকেজগুলি প্রয়োজন:
.NETFramework v4.5.2 দিয়ে পরীক্ষিত
আমি কাজের স্বীকৃত উত্তর পেতে পারি না, তবে বর্তমান ওয়েবড্রাইভার ডকুমেন্টেশন অনুসারে ওএস এক্স ১০.৯-তে জাভা with নিয়ে নিম্নলিখিতটি আমার পক্ষে ভাল কাজ করেছে:
import java.io.File;
import java.net.URL;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.remote.Augmenter;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;
public class Testing {
public void myTest() throws Exception {
WebDriver driver = new RemoteWebDriver(
new URL("http://localhost:4444/wd/hub"),
DesiredCapabilities.firefox());
driver.get("http://www.google.com");
// RemoteWebDriver does not implement the TakesScreenshot class
// if the driver does have the Capabilities to take a screenshot
// then Augmenter will add the TakesScreenshot methods to the instance
WebDriver augmentedDriver = new Augmenter().augment(driver);
File screenshot = ((TakesScreenshot)augmentedDriver).
getScreenshotAs(OutputType.FILE);
}
}
After do |scenario|
if(scenario.failed?)
puts "after step is executed"
end
time = Time.now.strftime('%a_%e_%Y_%l_%m_%p_%M')
file_path = File.expand_path(File.dirname(__FILE__) + '/../../../../../mlife_screens_shot')+'/'+time +'.png'
page.driver.browser.save_screenshot file_path
end
Given /^snapshot$/ do
time = Time.now.strftime('%a_%e_%Y_%l_%m_%p_%M')
file_path = File.expand_path(File.dirname(__FILE__) + '/../../../../../mlife_screens_shot')+'/'+time +'.png'
page.driver.browser.save_screenshot file_path
end
time = Time.now.strftime('%a_%e_%Y_%l_%m_%p_%M_%S')
file_path = File.expand_path(File.dirname(__FILE__) + 'screens_shot')+'/'+time +'.png'
#driver.save_screenshot(file_path)
page.driver.browser.save_screenshot file_path
public function takescreenshot($event)
{
$errorFolder = dirname(dirname(__FILE__)) . DIRECTORY_SEPARATOR . "ErrorScreenshot";
if(!file_exists($errorFolder)){
mkdir($errorFolder);
}
if (4 === $event->getResult()) {
$driver = $this->getSession()->getDriver();
$screenshot = $driver->getWebDriverSession()->screenshot();
file_put_contents($errorFolder . DIRECTORY_SEPARATOR . 'Error_' . time() . '.png', base64_decode($screenshot));
}
}
takescreenshot
ফাংশনটি কীভাবে কল করা যায় ? বিশেষত $event
চলকটি কোথা থেকে আসে? আমি একটি সম্পূর্ণ সেলেনিয়াম নুব তাই এই প্রশ্নের উত্তর যা পূর্ববর্তী সেলেনিয়াম জ্ঞানকে অনেক প্রশংসা করবে বলে ধরে নেই!
Set-Location PATH:\to\selenium
Add-Type -Path "Selenium.WebDriverBackedSelenium.dll"
Add-Type -Path "ThoughtWorks.Selenium.Core.dll"
Add-Type -Path "WebDriver.dll"
Add-Type -Path "WebDriver.Support.dll"
$driver = New-Object OpenQA.Selenium.PhantomJS.PhantomJSDriver
$driver.Navigate().GoToUrl("https://www.google.co.uk/")
# Take a screenshot and save it to filename
$filename = Join-Path (Get-Location).Path "01_GoogleLandingPage.png"
$screenshot = $driver.GetScreenshot()
$screenshot.SaveAsFile($filename, [System.Drawing.Imaging.ImageFormat]::Png)
অন্যান্য ড্রাইভার ...
$driver = New-Object OpenQA.Selenium.Chrome.ChromeDriver
$driver = New-Object OpenQA.Selenium.Firefox.FirefoxDriver
$driver = New-Object OpenQA.Selenium.IE.InternetExplorerDriver
$driver = New-Object OpenQA.Selenium.Opera.OperaDriver
[OpenQA.Selenium.ScreenshotImageFormat]::Png
চেয়ে ব্যবহার করা ভাল System.Drawing
।
পাইথন - উপাদানটির স্ক্রিনশট:
এটি বেশ পুরানো প্রশ্ন এবং এর একাধিক উত্তর রয়েছে। তবে মনে হচ্ছে পাইথন ব্যবহার করে কোনও নির্দিষ্ট ওয়েব উপাদানটির স্ক্রিনশট নেওয়া এখানে অনুপস্থিত।
অবস্থান
পৃষ্ঠায় একটি ওয়েব উপাদানটির নিজস্ব অবস্থান থাকে এবং সাধারণত এটি x এবং y পিক্সেলে পরিমাপ করা হয় এবং উপাদানটির (x, y) সমন্বয় হিসাবে পরিচিত। এবং অবস্থান অবজেক্টে দুটি মান থাকে।
আয়তন
অবস্থানের মতো, প্রতিটি ওয়েব এলিমেন্টের প্রস্থ এবং উচ্চতা রয়েছে; আকার অবজেক্ট হিসাবে উপলব্ধ।
(X, y) সমন্বয় এবং প্রস্থ, উচ্চতার মান ব্যবহার করে আমরা চিত্রটি ক্রপ করতে পারি এবং এটি একটি ফাইলে সংরক্ষণ করতে পারি।
from selenium import webdriver
from PIL import Image
driver = webdriver.Firefox(executable_path='[Browser Driver Path]')
driver.get('https://www.google.co.in')
element = driver.find_element_by_xpath("//div[@id='hplogo']")
location = element.location
size = element.size
driver.save_screenshot("/data/image.png")
x = location['x']
y = location['y']
width = location['x']+size['width']
height = location['y']+size['height']
im = Image.open('/data/WorkArea/image.png')
im = im.crop((int(x), int(y), int(width), int(height)))
im.save('/data/image.png')
দ্রষ্টব্য: http://allselenium.info/capture-screenshot-element-used-python-selenium-webdriver/ থেকে নেওয়া
এর মাধ্যমে একাধিক পদ্ধতি রয়েছে সেলেনিউম্এর জাভা এবং পাইথনএকটি স্ক্রিনশট নিতে ক্লায়েন্ট ব্যবহার করেসেলেনিয়াম-webdriver
স্ক্রিনশট নেওয়ার জন্য বিভিন্ন জাভা পদ্ধতি নীচে দেওয়া হয়েছে :
টেকস্ক্রিনশট ইন্টারফেস getScreenshotAs()
থেকে ব্যবহার করা :
কোড ব্লক:
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();
}
}
স্ক্রীনশট:
যদি ওয়েবপেজ হয় jQuery সক্রিয় আপনি ব্যবহার করতে পারেনএকটি প্রচেষ্টাথেকে pazone / 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();
}
}
স্ক্রীনশট:
ব্যবহার সেলেনিয়াম-উৎসাহী সৌখিন চিত্রগ্রাহকথেকে / সেলেনিয়াম-উৎসাহী সৌখিন চিত্রগ্রাহক assertthat গ্রন্থাগার:
কোড ব্লক:
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();
}
}
স্ক্রীনশট:
স্ক্রিনশট নেওয়ার বিভিন্ন পাইথন পদ্ধতি নিম্নলিখিত :
save_screenshot()
পদ্ধতি ব্যবহার :
কোড ব্লক:
from selenium import webdriver
driver = webdriver.Chrome(r'C:\Utility\BrowserDrivers\chromedriver.exe')
driver.get("http://google.com")
driver.save_screenshot('./Screenshots/save_screenshot_method.png')
driver.quit()
স্ক্রীনশট:
get_screenshot_as_file()
পদ্ধতি ব্যবহার :
কোড ব্লক:
from selenium import webdriver
driver = webdriver.Chrome(r'C:\Utility\BrowserDrivers\chromedriver.exe')
driver.get("http://google.com")
driver.get_screenshot_as_file('./Screenshots/get_screenshot_as_file_method.png')
driver.quit()
স্ক্রীনশট:
get_screenshot_as_png()
পদ্ধতি ব্যবহার :
কোড ব্লক:
from selenium import webdriver
driver = webdriver.Chrome(r'C:\Utility\BrowserDrivers\chromedriver.exe')
driver.get("http://google.com")
screenPnG = driver.get_screenshot_as_png()
#Crop it back to the window size (it may be taller)
box = (0, 0, 1366, 728)
im = Image.open(BytesIO(screenPnG))
region = im.crop(box)
region.save('./Screenshots/get_screenshot_as_png_method.png', 'PNG', optimize=True, quality=95)
driver.quit()
স্ক্রীনশট:
আপনি পাইথন ওয়েব ড্রাইভার ব্যবহার করে উইন্ডোজ থেকে চিত্রটি ক্যাপচার করতে পারেন। কোন পৃষ্ঠার স্ক্রিনশট ক্যাপচার করতে হবে তার নীচের কোডটি ব্যবহার করুন
driver.save_screenshot('c:\foldername\filename.extension(png,jpeg)')
public void captureScreenShot(String obj) throws IOException {
File screenshotFile=((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(screenshotFile,new File("Screenshots\\"+obj+""+GetTimeStampValue()+".png"));
}
public String GetTimeStampValue()throws IOException{
Calendar cal = Calendar.getInstance();
Date time=cal.getTime();
String timestamp=time.toString();
System.out.println(timestamp);
String systime=timestamp.replace(":", "-");
System.out.println(systime);
return systime;
}
এই দুটি পদ্ধতি ব্যবহার করে আপনি তারিখ এবং সময়ও স্ক্রিন শট নিতে পারেন।
স্ক্রিনশট সক্ষমতার সাথে নোড বাড়ানোর পরে, রিমোট ওয়েবড্রাইভার ব্যবহার করে, আমি স্ক্রিনশটটি এভাবে সংরক্ষণ করব:
void takeScreenShotMethod(){
try{
Thread.sleep(10000);
long id = Thread.currentThread().getId();
BufferedImage image = new Robot().createScreenCapture(new Rectangle(
Toolkit.getDefaultToolkit().getScreenSize()));
ImageIO.write(image, "jpg", new File("./target/surefire-reports/"
+ id + "/screenshot.jpg"));
}
catch( Exception e ) {
e.printStackTrace();
}
}
আপনি যেখানে প্রয়োজন সেখানে এই পদ্ধতিটি ব্যবহার করতে পারেন। তারপরে, আমি ধরে নিলাম আপনি মেইন-শিফারফায়ার-রিপোর্ট-প্লাগইন-এর স্টাইল শিটটি শিফায়ার-রিপোর্টস / এইচটিএমএল / কাস্টম সিএসএসে কাস্টমাইজ করতে পারবেন যাতে আপনার রিপোর্টগুলি প্রতিটি পরীক্ষার জন্য সঠিক স্ক্রিনশটের লিঙ্কটি অন্তর্ভুক্ত করে?
String yourfilepath = "E:\\username\\Selenium_Workspace\\foldername";
// take a snapshort
File snapshort_file = ((TakesScreenshot) mWebDriver)
.getScreenshotAs(OutputType.FILE);
// copy the file into folder
FileUtils.copyFile(snapshort_file, new File(yourfilepath));
আশা করি এটি আপনার সমস্যার সমাধান করে
সি শার্প
সেলেনিয়ামের সাথে স্ক্রিনশট নেওয়ার জন্য আপনি নীচের কোড স্নিপেট / ফাংশন ব্যবহার করতে পারেন:
public void TakeScreenshot(IWebDriver driver, string path = @"output")
{
var cantakescreenshot = (driver as ITakesScreenshot) != null;
if (!cantakescreenshot)
return;
var filename = string.Empty + DateTime.Now.Hour + DateTime.Now.Minute + DateTime.Now.Second + DateTime.Now.Millisecond;
filename = path + @"\" + filename + ".png";
var ss = ((ITakesScreenshot)driver).GetScreenshot();
var screenshot = ss.AsBase64EncodedString;
byte[] screenshotAsByteArray = ss.AsByteArray;
if (!Directory.Exists(path))
Directory.CreateDirectory(path);
ss.SaveAsFile(filename, ImageFormat.Png);
}
আপনি আশোট এপিআইতে চেষ্টা করে দেখতে পারেন। এখানে একই জন্য গিথুব লিঙ্ক's
https://github.com/yandex-qatools/ashot
কিছু পরীক্ষা এখানে ...
জাভা
টেস্টনাম এবং টাইমস্ট্যাম্প সংযুক্ত করে সেলেনিয়ামে ব্যর্থতার জন্য স্ক্রিনশট ক্যাপচার করার পদ্ধতি।
public class Screenshot{
final static String ESCAPE_PROPERTY = "org.uncommons.reportng.escape-output";
public static String imgname = null;
/*
* Method to Capture Screenshot for the failures in Selenium with TestName and Timestamp appended.
*/
public static void getSnapShot(WebDriver wb, String testcaseName) throws Exception {
try {
String imgpath=System.getProperty("user.dir").concat("\\Screenshot\\"+testcaseName);
File f=new File(imgpath);
if(!f.exists()) {
f.mkdir();
}
Date d=new Date();
SimpleDateFormat sd=new SimpleDateFormat("dd_MM_yy_HH_mm_ss_a");
String timestamp=sd.format(d);
imgname=imgpath+"\\"+timestamp+".png";
//Snapshot code
TakesScreenshot snpobj=((TakesScreenshot)wb);
File srcfile=snpobj.getScreenshotAs(OutputType.FILE);
File destFile=new File(imgname);
FileUtils.copyFile(srcfile, destFile);
}
catch(Exception e) {
e.getMessage();
}
}