-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathRegistrationPage.java
More file actions
128 lines (102 loc) · 4.33 KB
/
Copy pathRegistrationPage.java
File metadata and controls
128 lines (102 loc) · 4.33 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
package io.github.mfaisalkhatri.pages;
import java.time.Duration;
import io.github.mfaisalkhatri.data.RegistrationData;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.Select;
import org.openqa.selenium.support.ui.WebDriverWait;
public class RegistrationPage {
private final WebDriver driver;
private final WebDriverWait wait;
public RegistrationPage (final WebDriver driver) {
this.driver = driver;
this.wait = new WebDriverWait (driver, Duration.ofSeconds (30));
}
public void fillRegistrationForm (final RegistrationData registrationData) {
firstNameField ().clear ();
firstNameField ().sendKeys (registrationData.getFirstName ());
lastNameField ().clear ();
lastNameField ().sendKeys (registrationData.getLastName ());
dobField ().sendKeys (registrationData.getDob ());
selectCountryVisibleText (registrationData.getCountry ());
postalCodeField ().clear ();
postalCodeField ().sendKeys (registrationData.getPostalCode ());
houseNumber().clear();
houseNumber().sendKeys(registrationData.getHouseNumber());
//streetField ().clear ();
//streetField ().sendKeys (registrationData.getStreet ());
//cityField ().clear ();
//cityField ().sendKeys (registrationData.getCity ());
//stateField ().clear ();
//stateField ().sendKeys (registrationData.getState ());
phoneField ().clear ();
phoneField ().sendKeys (registrationData.getPhone ());
emailAddressField ().clear ();
emailAddressField ().sendKeys (registrationData.getEmailAddress ());
passwordField ().clear ();
passwordField ().sendKeys (registrationData.getPassword ());
registerButton ().click ();
}
public String pageHeader () {
return wait.until (ExpectedConditions.visibilityOfElementLocated (By.cssSelector ("app-register h3")))
.getText ();
}
public String passwordAlertMessage () {
Actions actions = new Actions (driver);
actions.moveToElement (footerField ()).build ().perform ();
WebElement warningMessage = wait.until (
ExpectedConditions.visibilityOfElementLocated (By.cssSelector ("div.alert")));
actions.moveToElement (warningMessage)
.build ()
.perform ();
return warningMessage.getText ();
}
private WebElement cityField () {
return this.driver.findElement (By.id ("city"));
}
private WebElement countryField () {
return this.driver.findElement (By.id ("country"));
}
private WebElement dobField () {
return this.driver.findElement (By.id ("dob"));
}
private WebElement emailAddressField () {
return this.driver.findElement (By.id ("email"));
}
private WebElement firstNameField () {
return this.driver.findElement (By.id ("first_name"));
}
private WebElement lastNameField () {
return this.driver.findElement (By.id ("last_name"));
}
private WebElement passwordField () {
return this.driver.findElement (By.id ("password"));
}
private WebElement phoneField () {
return this.driver.findElement (By.id ("phone"));
}
private WebElement postalCodeField () {
return this.driver.findElement (By.id ("postal_code"));
}
private WebElement registerButton () {
return this.driver.findElement (By.cssSelector (".btnSubmit"));
}
private WebElement houseNumber () {
return this.driver.findElement(By.id("house_number"));
}
private void selectCountryVisibleText (final String countryName) {
new Select (countryField ()).selectByVisibleText (countryName);
}
private WebElement stateField () {
return this.driver.findElement (By.id ("state"));
}
private WebElement streetField () {
return this.driver.findElement (By.id ("street"));
}
private WebElement footerField () {
return this.driver.findElement (By.cssSelector ("app-footer p"));
}
}