Apply POM to MostCommonInputs
This commit is contained in:
parent
c3bb40338e
commit
7d4096225a
|
|
@ -0,0 +1,26 @@
|
||||||
|
package pages.webelements;
|
||||||
|
|
||||||
|
import org.openqa.selenium.WebDriver;
|
||||||
|
import org.openqa.selenium.WebElement;
|
||||||
|
import org.openqa.selenium.support.FindBy;
|
||||||
|
import org.openqa.selenium.support.How;
|
||||||
|
import org.openqa.selenium.support.PageFactory;
|
||||||
|
|
||||||
|
public class ModalDialogPage
|
||||||
|
{
|
||||||
|
@FindBy(how = How.ID, using = "form-interactions-modal-close-button")
|
||||||
|
private WebElement closeButton;
|
||||||
|
|
||||||
|
private WebDriver driver = null;
|
||||||
|
|
||||||
|
public ModalDialogPage(WebDriver driver)
|
||||||
|
{
|
||||||
|
this.driver = driver;
|
||||||
|
PageFactory.initElements(this.driver, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void close()
|
||||||
|
{
|
||||||
|
closeButton.click();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,98 @@
|
||||||
|
package pages.webelements;
|
||||||
|
|
||||||
|
import org.openqa.selenium.WebDriver;
|
||||||
|
import org.openqa.selenium.WebElement;
|
||||||
|
import org.openqa.selenium.support.FindBy;
|
||||||
|
import org.openqa.selenium.support.PageFactory;
|
||||||
|
|
||||||
|
public class MostCommonInputsPage
|
||||||
|
{
|
||||||
|
@FindBy(xpath = "//button[contains(text(),'Most Common Inputs')]")
|
||||||
|
private WebElement accordionItem;
|
||||||
|
|
||||||
|
@FindBy(id = "text-input")
|
||||||
|
private WebElement textInput;
|
||||||
|
|
||||||
|
@FindBy(id = "readonly-input")
|
||||||
|
private WebElement readonlyInput;
|
||||||
|
|
||||||
|
@FindBy(id = "email-input")
|
||||||
|
private WebElement emailInput;
|
||||||
|
|
||||||
|
@FindBy(id = "password-input")
|
||||||
|
private WebElement passwordInput;
|
||||||
|
|
||||||
|
@FindBy(id = "textarea")
|
||||||
|
private WebElement textarea;
|
||||||
|
|
||||||
|
@FindBy(id = "form-interactions-reset-button")
|
||||||
|
private WebElement resetButton;
|
||||||
|
|
||||||
|
@FindBy(id = "form-interactions-submit-button")
|
||||||
|
private WebElement submitButton;
|
||||||
|
|
||||||
|
private WebDriver driver = null;
|
||||||
|
|
||||||
|
public MostCommonInputsPage(WebDriver driver)
|
||||||
|
{
|
||||||
|
this.driver = driver;
|
||||||
|
PageFactory.initElements(this.driver, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void clickOnAccordionItem()
|
||||||
|
{
|
||||||
|
accordionItem.click();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setText(String text)
|
||||||
|
{
|
||||||
|
textInput.sendKeys(text);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEmail(String text)
|
||||||
|
{
|
||||||
|
emailInput.sendKeys(text);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPassword(String text)
|
||||||
|
{
|
||||||
|
passwordInput.sendKeys(text);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTextarea(String text)
|
||||||
|
{
|
||||||
|
textarea.sendKeys(text);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void clearText()
|
||||||
|
{
|
||||||
|
textInput.clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void reset()
|
||||||
|
{
|
||||||
|
resetButton.click();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void submit()
|
||||||
|
{
|
||||||
|
submitButton.click();
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getReadonlyValue()
|
||||||
|
{
|
||||||
|
return readonlyInput.getAttribute("value");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void sleep(long millis)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Thread.sleep(millis);
|
||||||
|
} catch (InterruptedException e)
|
||||||
|
{
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,54 @@
|
||||||
|
package tests.webelements;
|
||||||
|
|
||||||
|
import org.openqa.selenium.WebDriver;
|
||||||
|
import org.openqa.selenium.firefox.FirefoxDriver;
|
||||||
|
|
||||||
|
import pages.webelements.ModalDialogPage;
|
||||||
|
import pages.webelements.MostCommonInputsPage;
|
||||||
|
|
||||||
|
public class MostCommonInputsTests
|
||||||
|
{
|
||||||
|
public static void main(String[] args)
|
||||||
|
{
|
||||||
|
// Specify path to WebDriver:
|
||||||
|
System.setProperty("webdriver.gecko.driver", "/snap/bin/geckodriver");
|
||||||
|
|
||||||
|
// Launch browser and navigate to test page:
|
||||||
|
WebDriver driver = new FirefoxDriver();
|
||||||
|
driver.manage().window().maximize();
|
||||||
|
driver.get("https://ramoncaballero.dev/sdet/selenium-webdriver/playgrounds/");
|
||||||
|
|
||||||
|
// Instantiate the page model:
|
||||||
|
MostCommonInputsPage page = new MostCommonInputsPage(driver);
|
||||||
|
|
||||||
|
// Perform actions on the page:
|
||||||
|
page.clickOnAccordionItem();
|
||||||
|
page.setText("Selenium WebDriver");
|
||||||
|
page.setEmail("hello@ramoncaballero.dev");
|
||||||
|
page.setPassword("YouDontNeedToKnowThis");
|
||||||
|
page.setTextarea("This is a textarea and I can write inside it.");
|
||||||
|
|
||||||
|
page.clearText();
|
||||||
|
page.setText("Interacting with WebElements");
|
||||||
|
|
||||||
|
page.reset();
|
||||||
|
|
||||||
|
page.setText("Interacting with WebElements with Selenium WebDriver");
|
||||||
|
page.setEmail("hello@example.com");
|
||||||
|
page.setPassword("YouMustNotKnowThis");
|
||||||
|
page.setTextarea("Let's try to write something again.");
|
||||||
|
|
||||||
|
page.submit();
|
||||||
|
|
||||||
|
page.sleep(500);
|
||||||
|
ModalDialogPage modal = new ModalDialogPage(driver);
|
||||||
|
modal.close();
|
||||||
|
|
||||||
|
System.out.println("The read-only input text says '" + page.getReadonlyValue() + "'");
|
||||||
|
|
||||||
|
//
|
||||||
|
|
||||||
|
// This is commented out so you can actually see what happened in the web page:
|
||||||
|
// driver.quit();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,79 +0,0 @@
|
||||||
package webelements;
|
|
||||||
|
|
||||||
import org.openqa.selenium.By;
|
|
||||||
import org.openqa.selenium.WebDriver;
|
|
||||||
import org.openqa.selenium.WebElement;
|
|
||||||
import org.openqa.selenium.firefox.FirefoxDriver;
|
|
||||||
|
|
||||||
public class MostCommonInputs
|
|
||||||
{
|
|
||||||
public static void main(String[] args)
|
|
||||||
{
|
|
||||||
// Specify path to WebDriver:
|
|
||||||
System.setProperty("webdriver.gecko.driver", "/snap/bin/geckodriver");
|
|
||||||
|
|
||||||
// Launch browser and navigate to test page:
|
|
||||||
WebDriver driver = new FirefoxDriver();
|
|
||||||
driver.manage().window().maximize();
|
|
||||||
driver.get("https://ramoncaballero.dev/sdet/selenium-webdriver/playgrounds/");
|
|
||||||
|
|
||||||
// Click on the 'Most Common Inputs' accordion item:
|
|
||||||
driver.findElement(By.xpath("//button[contains(text(),'Most Common Inputs')]")).click();
|
|
||||||
|
|
||||||
// Text input:
|
|
||||||
WebElement textInput = driver.findElement(By.id("text-input"));
|
|
||||||
textInput.sendKeys("Selenium WebDriver");
|
|
||||||
|
|
||||||
// Read-only input:
|
|
||||||
WebElement readonlyInput = driver.findElement(By.id("readonly-input"));
|
|
||||||
String readonlyText = readonlyInput.getAttribute("value");
|
|
||||||
System.out.println("The read-only input text says '" + readonlyText + "'");
|
|
||||||
|
|
||||||
// Email input:
|
|
||||||
WebElement emailInput = driver.findElement(By.id("email-input"));
|
|
||||||
emailInput.sendKeys("hello@ramoncaballero.dev");
|
|
||||||
|
|
||||||
// Password input:
|
|
||||||
WebElement passwordInput = driver.findElement(By.id("password-input"));
|
|
||||||
passwordInput.sendKeys("YouDontNeedToKnowThis");
|
|
||||||
|
|
||||||
// Textarea:
|
|
||||||
WebElement textarea = driver.findElement(By.id("textarea"));
|
|
||||||
textarea.sendKeys("This is a textarea and I can write inside it.");
|
|
||||||
|
|
||||||
// Clear text input and write something else:
|
|
||||||
textInput.clear();
|
|
||||||
textInput.sendKeys("Interacting with WebElements");
|
|
||||||
|
|
||||||
// Click Reset button:
|
|
||||||
driver.findElement(By.id("form-interactions-reset-button")).click();
|
|
||||||
|
|
||||||
// Write again on the fields (no need to find the elements as we already have them!):
|
|
||||||
textInput.sendKeys("Interacting with WebElements with Selenium WebDriver");
|
|
||||||
emailInput.sendKeys("hello@example.com");
|
|
||||||
passwordInput.sendKeys("YouMustNotKnowThis");
|
|
||||||
textarea.sendKeys("Let's try to write something again.");
|
|
||||||
|
|
||||||
// Click Submit button:
|
|
||||||
WebElement submitButton = driver.findElement(By.id("form-interactions-submit-button"));
|
|
||||||
submitButton.click();
|
|
||||||
|
|
||||||
// The modal dialog might take a few milliseconds to appear, so let's wait in a simple way:
|
|
||||||
try
|
|
||||||
{
|
|
||||||
Thread.sleep(500);
|
|
||||||
}
|
|
||||||
catch (InterruptedException e)
|
|
||||||
{
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Close the modal dialog:
|
|
||||||
driver.findElement(By.id("form-interactions-modal-close-button")).click();
|
|
||||||
|
|
||||||
//
|
|
||||||
|
|
||||||
// This is commented out so you can actually see what happened in the web page:
|
|
||||||
// driver.quit();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Loading…
Reference in New Issue