Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class BasePage {
- public WebDriver driver;
- @FindBy(css = "[role='main'] .zA")
- public List<WebElement> mails;
- public BasePage(WebDriver driver){
- this.driver = driver;
- PageFactory.initElements(driver, this);
- }
- }
- /*
- все ок реализовал
- тут отметим для себя -
- объявили public поле для драйвера
- и в конструкторе - его запомнили
- это ок
- поле mails - переноси в пейдж MailsPage
- поскольку после переноса mails в пейдж
- этот класс - будет универсальным - перенеси предка пейджей
- в пекедж core
- */
- public class MailsPage extends BasePage{
- /*
- смотрим дальше - пейджа отаследовали от предка
- это значит - и тут нам доступны все поля и методы предка
- согласно их модификаторам доступа
- https://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html
- http://www.javatpoint.com/access-modifiers
- public поле предка driver - доступно и тут, в потомке
- */
- WebDriver driver;
- /*
- и нам не надо дополнительно и тут объявлять аналогичное поле
- фактически - тут объявив одноименное поле - мы перекрыли себе возможности использовать
- поле driver из предка
- */
- public MailsPage(WebDriver driver){
- super(driver);
- }
- /*
- тут мы поле предка - заполнили переданным значением вебдрайвера
- поле предка - т к используем код предка
- в результате - поле driver этого класса - остается не инициализированным
- и далее - когда мы в этом пейдже обращаемся к driver - мы обращаемся к этому не инициализированному полю
- и получаем - Null Pointer Exception
- как решаем
- убираем в пейджах поле driver
- оставляем поле driver в предке пейджей
- это касается всех пейджей
- */
- ******************************
- public static ExpectedCondition<WebElement> nthElementHasText(final List<WebElement> elements , final int index, final String text) {
- /*
- реализация - ок
- */
- public String toString() {
- return String.format("\nExpected text: %s\n while actual text is: %s\n", text, actualText);
- }
- /*
- тут можно было бы быть чуть точнее
- expected text of list element by index ...: ...
- while actual ....
- вывести индекс - стоит тоже
- */
- *********************************
- if (actualTexts.size() == expectedTexts.length){
- for(int i = 0; i < actualTexts.size(); i++ ) {
- if (!actualTexts.get(i).contains(expectedTexts[i])) {
- return null;
- }
- }
- } else {
- return null;
- }
- return elements;
- /*
- технически - все ок
- но этот кусочек можно переписать попроще
- */
- if (actualTexts.size() != expectedTexts.length){
- return null;
- }
- for(int i = 0; i < actualTexts.size(); i++ ) {
- if (!actualTexts.get(i).contains(expectedTexts[i])) {
- return null;
- }
- }
- return elements;
- **********************************************
- public String toString() {
- return String.format("\nChecked that expected container: %s\n not equal to actual container: %s\n Containers not equal", actualTexts.toString(), Arrays.toString(expectedTexts));
- }
- /*
- в toString() конишена стоит писать - что сравниваем, у чего сравниваем, что ждали, что получили
- Texts of list elements
- should be : ...
- while actual texts is: ...
- что-то такое
- */
- ***********************************
- /*
- в целом версия - уже практически финальная
- поправить осталось немного
- */
Advertisement
Add Comment
Please, Sign In to add comment