The below image explains how to setup TestNG with eclipse.
|
Blog to understand automation concepts in QTP, Selenium Webdriver and Manual Testing concepts
Setting Up TestNG with eclipse
Code to Capture screenshot in Selenium WebDriver Automation
When we run a script in any automation framework, Capturing and reporting images especially in case of failure is required. In this article, we will discuss different ways to capture screenshot and how to report with screenshot.
Steps to reporting with screenshot:
- Create an independent function to capture screenshot.
- Call the screenshot function from the reporting function based on whether to capture screenshot or not.
Different ways to capture screenshot are:
- Using Java.awt class - Recommend to use if automation interacts with other application together with web application.
- Using Selenium webdriver (selenium.TakesScreenshot) - Use this to capture screenshot if only web application is to be tested which are identified using selenium webdriver.
Below code shows how to capture screenshot using the above classes:
1: package testproject;
2: import java.awt.Rectangle;
3: import java.awt.Robot;
4: import java.awt.Toolkit;
5: import java.awt.image.BufferedImage;
6: import java.io.File;
7: import java.util.List;
8: import javax.imageio.ImageIO;
9: import org.apache.commons.io.FileUtils;
10: import org.openqa.selenium.OutputType;
11: import org.openqa.selenium.TakesScreenshot;
12: import org.openqa.selenium.WebDriver;
13: import org.openqa.selenium.ie.InternetExplorerDriver;
14: public class testingC {
15: static WebDriver driver;
16: public static void main(String[] args) throws InterruptedException {
17: // Connect to the Internet driver server and create an instance of Internet explorer driver.
18: File file = new File("D:\\selenium\\IEDriverServer.exe");
19: System.setProperty("webdriver.ie.driver", file.getAbsolutePath());
20: try
21: {
22: driver = new InternetExplorerDriver();
23: }
24: catch(Exception e)
25: {
26: driver=new InternetExplorerDriver();
27: }
28: driver.navigate().to("https://qaautomationqtp.blogspot.com");
29: try {
30: Capturescreenshot("testingscr.png");
31: CapturescreenshotJava("D://testingscr1.png");
32: } catch (Exception e)
33: {
34: e.printStackTrace();
35: }
36: }
37: public static void Capturescreenshot(String StrscreenshotName) throws Exception
38: {
39: File generateFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
40: String strOutFile = "D:\\"+StrscreenshotName;
41: FileUtils.copyFile(generateFile, new File(strOutFile));
42: }
43: public static void CapturescreenshotJava(String StrscreenshotName) throws Exception
44: {
45: Robot robot = new Robot();
46: Rectangle screenRect = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize());
47: BufferedImage scrImg = robot.createScreenCapture(screenRect);
48: ImageIO.write(scrImg, "png", new File(StrscreenshotName));
49: }
50: }
Using ExpectedConditions for explicit wait in Selenium Webdriver.
In this article, we will discuss on different explicit wait asking the test script to wait for some time based on the expectedcondition for object defined by locator.Before discussing further, let us have a look at generic syntax for adding an explicit wait in the test using expected condition.
WebDriverWait wait = new WebDriverWait(driver, 1000);
wait.until(ExpectedConditions.presenceOfElementLocated(By.linkText("QAmail")));
In the first statement, we create an instance wait of the WebdriverWait object with arguments as driver object and the time to wait for existence of element.
In the next statement, we are asking the script to wait until the expected condition is met. In the above script, test script will wait for max 1000 second for element identified with linkText as "QAmail" to be available in the DOM for the page.
Let us define what are the different ways to use expected condition based on which we can add explicit wait in the object.
a. presenceOfElementLocated - Verify presence of element in the DOM.
WebDriverWait wait = new WebDriverWait(driver, 1000);
wait.until(ExpectedConditions.presenceOfElementLocated(By.linkText("QAmail")));
b. Using elementToBeClickable
wait.until(ExpectedConditions.elementToBeClickable(By.linkText("TGmail")));
c. Using invisibilityOfElementLocated
wait.until(ExpectedConditions.invisibilityOfElementLocated(By.linkText("tGmail")));
d. invisibilityOfElementWithText - Validating the invisibility of element with text for the element provided.
wait.until(ExpectedConditions.invisibilityOfElementWithText(By.xpath("//div[@id='_eE']"), "tGmail"));
e. textToBePresentInElement - Validating the text to be present in the element defined by locator.
wait.until(ExpectedConditions.textToBePresentInElement(By.xpath("//div[@id='_eE']"),"Gmail"));
f. visibilityOfElementLocated by locator.
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//div[@id='_eE']")));
g. titleContains - Wait until the title is displayed correctly
wait.until(ExpectedConditions.titleContains("QA Automation QTP"));
h. alertIsPresent - waits for alert to appear in the window.
wait.until(ExpectedConditions.alertIsPresent());
Subscribe to:
Posts (Atom)