Code CA3
Code CA3
Using selenium locate the url and select the menu or submenu (dropdowns, checkbox,
radiobutton)
public class q1 {
@Test
public void dropdownview() {
// Selecting menu/ dropdowns from a website
ChromeDriver driver = new ChromeDriver();
driver.get("https://www.w3schools.com/howto/howto_custom_select.asp");
Select dropdown = new
Select(driver.findElement(By.xpath("//*[@id=\"main\"]/div[3]/div[1]/
select")));
//dropdown.selectByVisibleText("Ford");
dropdown.selectByIndex(3);
System.out.println("Option selected :"+
driver.findElement(By.xpath("//*[@id=\"main\"]/div[3]/div[1]/select")).isSe
lected());
}
@Test
public void checkbox() {
// Select checkbox options
ChromeDriver driver = new ChromeDriver();
driver.get("https://www.w3.org/WAI/ARIA/apg/example-index/checkbox/
checkbox-mixed");
System.out.println("Checkbox
selected:"+driver.findElement(By.xpath("//*[@id=\"cond3\"]")).isSelected())
;
driver.findElement(By.xpath("//*[@id=\"cond3\"]")).click();
System.out.println("Checkbox
selected:"+driver.findElement(By.xpath("//*[@id=\"cond3\"]")).isSelected())
;
@Test
public void radiobutton() {
//Select choices from radiobutton
ChromeDriver driver = new ChromeDriver();
driver.get("https://www.ironspider.ca/forms/checkradio.htm");
System.out.println("Checkbox
selected:"+driver.findElement(By.xpath("//*[@id=\"Content\"]/div[1]/
blockquote[2]/form/input[3]")).isSelected());
driver.findElement(By.xpath("//*[@id=\"Content\"]/div[1]/blockquote[2]/
form/input[3]")).click();
System.out.println("Checkbox
selected:"+driver.findElement(By.xpath("//*[@id=\"Content\"]/div[1]/
blockquote[2]/form/input[3]")).isSelected());
}
2. Using TestNG, get the page title and page source and validate both using assert.
public class PageTitle {
WebDriver driver;
public String pageTitle = "Online Shopping site in India: Shop Online
for Mobiles, Books, Watches, Shoes and More - Amazon.in";
public String sourceText = "Go1";
@BeforeTest
public void setup() {
driver = new ChromeDriver();
WebDriverManager.chromedriver().setup();
}
@Test
public void testcase1() {
driver.get("https://www.amazon.in");
String actualTitle = driver.getTitle();
//System.out.println(actualTitle);
Assert.assertEquals(pageTitle,actualTitle,"Wrong, page titlesdo
not match!" );
}
@Test
public void testcase2() {
String actualtext= driver.findElement(By.xpath("//*[@id=\"nav-
search-submit-button\"]")).getAttribute("value");
//System.out.println(actualtext);
Assert.assertEquals(sourceText, actualtext,"Error,no match
found");
}
@AfterTest
public void closedriver() {
System.out.println("Execution completed");
}
3. Annotate the test cases using annotations and group the test cases
public class Groups {
WebDriver driver;
public String pageTitle = "Online Shopping site in India: Shop Online
for Mobiles, Books, Watches, Shoes and More - Amazon.in";
public String sourceText = "Go1";
@BeforeTest(groups= {"A","B"})
public void setup() {
driver = new ChromeDriver();
WebDriverManager.chromedriver().setup();
}
@Test(groups="A",priority=2)
public void testcase1() {
driver.get("https://www.amazon.in");
String actualTitle = driver.getTitle();
//System.out.println(actualTitle);
Assert.assertEquals(pageTitle,actualTitle,"Wrong, page titles
do not match!" );
}
@Test(groups="B")
public void testcase2() {
String actualtext= driver.findElement(By.xpath("//*[@id=\"nav-
search-submit-button\"]")).getAttribute("value");
//System.out.println(actualtext);
Assert.assertEquals(sourceText, actualtext,"Error,no match
found");
}
@Test(groups="B")
public void testcase3()
{
System.out.println("Testcase 3");
}
@Test(groups="A",priority=1)
public void testcase4()
{
System.out.println("Testcase 4");
}
@AfterTest
public void closedriver() {
System.out.println("Execution completed");
}
}
XML :
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">
<suite name="Suite">
<test thread-count="5" name="Test">
<groups>
<run>
<include name = "A"></include>
<include name = "B"></include>
</run>
</groups>
<classes>
<class name="Testpractice.Groups"/>
</classes>
</test> <!-- Test -->
</suite> <!-- Suite -->
4. Using the TestNG data providers, validate the username and password in a login page.
Loginpage class
public class Loginpage {
@Test(dataProvider="testdataset1",dataProviderClass=Testdata.class)
public void testcase1(String username,String password)
{
WebDriverManager.chromedriver().setup();
WebDriver driver = new ChromeDriver();
driver.get("https://www.saucedemo.com");
driver.findElement(By.id("user-name")).sendKeys(username);
driver.findElement(By.id("password")).sendKeys(password);
driver.findElement(By.id("login-button")).click();
//driver.close();
}
}
Dataprovider class
import org.testng.annotations.DataProvider;
@DataProvider(name="testdataset1")
//row 1
dataset[0][0] = "standard_user";
dataset[0][1] = "secret_sauce";
//row 2
dataset[1][0] = "locked_out_user";
dataset[1][1] = "secret_sauce";
//row 3
dataset[2][0] = "problem_user";
dataset[2][1] = "secret_sauce";
//row 4
dataset[3][0] = "performance_glitch_user";
dataset[3][1] = "secret_sauce";
return dataset;
}
}
NOTE: If dataprovider object is defined within same login page class, the
parameter dataProviderClass can be omitted
5. Using TestNG ,locate the url and and send user id and pwd for login page.
Login class
public class Listenerlogin {
@Test
@Parameters({"username","password"})
public void logindemo(String username,String password) {
WebDriver driver = new ChromeDriver();
driver.get("https://www.saucedemo.com");
driver.findElement(By.id("user-name")).sendKeys(username);
driver.findElement(By.id("password")).sendKeys(password);
driver.findElement(By.id("login-button")).click();
}
}
Listener class
public class Listener implements ITestListener {
public void onTestStart(ITestResult result)
{
System.out.println("Test case execution begins ");
}
XM – Add the highlighted tags to link the listener with the loginpage class
and pass the parameters
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">
<suite name="Suite">
<parameter name="username" value="standard_user"></parameter>
<parameter name="password" value="secret_sauce"></parameter>
<listeners>
<listener class-name="Testpractice.Listener"></listener>
</listeners>
<test thread-count="5" name="Test">
<classes>
<class name="Testpractice.Listenerlogin"/>
</classes>
</test> <!-- Test -->
</suite> <!-- Suite -->