Cross Browser Testing:
Cross browser testing means testing the application in different
browsers
testing the application in chrome browser
edge
firefox
ex:
login functionality -- Chrome, Edge, Firefox, IE, Safari
<?xml version="1.0" encoding="UTF-8"?>
<suite name="My suite ">
<test
name="My test-chrome">
<!--
// Define parameter name = browser = chrome -->
<parameter
name="browser" value= "chrome"> </parameter>
<classes>
<class
name="TestNGBasics2.CrossBrowserTestingBasics1">
</class>
</classes>
</test>
<test
name="Test -Edge">
<!--
// Define parameter name = browser = edge -->
<parameter
name="browser" value="edge"> </parameter>
<classes>
<class
name="TestNGBasics2.CrossBrowserTestingBasics1">
</class>
</classes>
</test>
</suite>
package TestNGBasics2;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.edge.EdgeDriver;
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;
public class CrossBrowserTestingBasics1 {
// Define
parameter -browser
@Test
//
Define browser parameter and read
'browser' param from testng.xml file
@Parameters("browser")
public
void login(String mybrowser) throws InterruptedException
{
System.out.println("in
CrossBrowserTestingBasics1 -
login()");
System.out.println("Reading
browser param=" +mybrowser);
WebDriver driver = null;
if(mybrowser.equals("chrome"))
{
//
open chrome browser
System.setProperty("webdriver.chrome.driver",
".\\Drivers\\chromedriver.exe");
// WebDriver
driver = new ChromeDriver();
driver =
new ChromeDriver();
}
else
if(mybrowser.equals("edge"))
{
//
open edge browser
System.setProperty("webdriver.edge.driver",
".\\Drivers\\msedgedriver.exe");
// WebDriver
driver = new ChromeDriver();
driver =
new EdgeDriver();
}
Thread.sleep(5000);
//HW Firefox browser
//
open url
driver.get("https://www.amazon.in/");
//
get current url
String
url = driver.getCurrentUrl();
System.out.println("url="+
url);
}
}
Run testng.xml
file
[RemoteTestNG] detected
TestNG version 7.0.0
[TestNGContentHandler] [WARN] It is strongly recommended to add
"<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd"
>" at the top of your file, otherwise TestNG may fail or not work as
expected.
in CrossBrowserTestingBasics1 -
login()
Reading browser param=chrome
Oct 12, 2023 9:06:29 AM
org.openqa.selenium.devtools.CdpVersionFinder findNearestMatch
WARNING: Unable to find an exact match for CDP version 117, so
returning the closest version found: 116
url=https://www.amazon.in/
[TestHTMLReporter] The system cannot find the path specified
[TestHTMLReporter] The system cannot find the path specified
in CrossBrowserTestingBasics1 -
login()
Reading browser param=edge
Oct 12, 2023 9:06:42 AM org.openqa.selenium.devtools.CdpVersionFinder
findNearestMatch
WARNING: Unable to find an exact match for CDP version 117, so
returning the closest version found: 116
url=https://www.amazon.in/
[TestHTMLReporter] The system cannot find the path specified
===============================================
My suite
Total tests run: 2, Passes: 2, Failures: 0, Skips: 0
===============================================
// HW run in firefox browser also ?
Note:
Here it runs Test tags/ all classes sequentially
Run Tests
Parallel:
define parallel = "tests" in 'suite' tag
<?xml version="1.0" encoding="UTF-8"?>
<suite name="My suite "
parallel="tests">
<test
name="My test-chrome">
<!--
// Define parameter name = browser = chrome -->
<parameter
name="browser" value= "chrome"> </parameter>
<classes>
<class
name="TestNGBasics2.CrossBrowserTestingBasics1">
</class>
</classes>
</test>
<test
name="Test -Edge">
<!--
// Define parameter name = browser = edge -->
<parameter
name="browser" value="edge"> </parameter>
<classes>
<class
name="TestNGBasics2.CrossBrowserTestingBasics1">
</class>
</classes>
</test>
</suite>
package TestNGBasics2;
import java.util.Date;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.edge.EdgeDriver;
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;
public class CrossBrowserTestingBasics1 {
@Parameters("browser")
@Test
// Define browser
parameter and read 'browser' param from
testng.xml file
public void
login(String mybrowser) throws InterruptedException
{
System.out.println("in
CrossBrowserTestingBasics1 -
login()");
System.out.println("Reading
browser param="+ mybrowser);
WebDriver driver = null;
//
chrome
if(mybrowser.equals("chrome"))
{
System.setProperty("webdriver.chrome.driver",
".\\Drivers\\chromedriver.exe");
// WebDriver
driver = new ChromeDriver();
driver =
new ChromeDriver();
}
else
if(mybrowser.equals("edge")) // //
edge
{
System.setProperty("webdriver.edge.driver",
".\\Drivers\\msedgedriver.exe");
// WebDriver
driver = new EdgeDriver();
driver =
new EdgeDriver();
}
Thread.sleep(5000);
//HW Firefox browser
driver.get("file:///C:/brahma/Practise/qtp%20practise/web%20apps/ALL%20Web%20objects.html");
//
get current url
String
url = driver.getCurrentUrl();
System.out.println("url
=" +url);
System.out.println("Executing
test in " + mybrowser + " at Time=" + new Date() );
Thread.sleep(4000);
driver.findElement(By.name("firstname")).clear();
Thread.sleep(4000);
driver.findElement(By.name("firstname")).sendKeys("Raju");
Thread.sleep(4000);
driver.findElement(By.name("lastname")).sendKeys("yadhav");
Thread.sleep(4000);
System.out.println("ends
at time =" + new Date() );
}
}
--------------------------------
run from etstng .xml
o/p:
[RemoteTestNG] detected TestNG version 7.0.0
[TestNGContentHandler] [WARN] It is strongly recommended to add
"<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd"
>" at the top of your file, otherwise TestNG may fail or not work as
expected.
in CrossBrowserTestingBasics1 -
login()
Reading browser param=edge
in CrossBrowserTestingBasics1 -
login()
Reading browser param=chrome
Jun 14, 2024 9:04:49 AM
org.openqa.selenium.devtools.CdpVersionFinder findNearestMatch
WARNING: Unable to find CDP implementation matching 126
Jun 14, 2024 9:04:49 AM
org.openqa.selenium.chromium.ChromiumDriver lambda$new$5
WARNING: Unable to find version of CDP to use for 126.0.6478.56.
You may need to include a dependency on a specific version of the CDP using
something similar to `org.seleniumhq.selenium:selenium-devtools-v86:4.20.0`
where the version ("v86") matches the version of the chromium-based
browser you're using and the version number of the artifact is the same as
Selenium's.
Jun 14, 2024 9:04:51 AM org.openqa.selenium.devtools.CdpVersionFinder
findNearestMatch
WARNING: Unable to find CDP implementation matching 125
Jun 14, 2024 9:04:51 AM
org.openqa.selenium.chromium.ChromiumDriver lambda$new$5
WARNING: Unable to find version of CDP to use for 125.0.2535.92.
You may need to include a dependency on a specific version of the CDP using
something similar to `org.seleniumhq.selenium:selenium-devtools-v86:4.20.0`
where the version ("v86") matches the version of the chromium-based
browser you're using and the version number of the artifact is the same as
Selenium's.
url
=file:///C:/brahma/Practise/qtp%20practise/web%20apps/ALL%20Web%20objects.html
Executing test in chromeat Time=Fri Jun 14 09:04:55 IST 2024
url
=file:///C:/brahma/Practise/qtp%20practise/web%20apps/ALL%20Web%20objects.html
Executing test in edgeat Time=Fri Jun 14 09:04:56 IST 2024
ends at time =Fri Jun 14 09:05:11 IST 2024
[TestHTMLReporter] The system cannot find the path specified
[TestHTMLReporter] The system cannot find the path specified
ends at time =Fri Jun 14 09:05:13 IST 2024
[TestHTMLReporter] The system cannot find the path specified
===============================================
My suite
Total tests run: 2, Passes: 2, Failures: 0, Skips: 0
===============================================
No comments:
Post a Comment