Почему мой клик не работает на mobileEmulation? - PullRequest
1 голос
/ 10 июля 2019

Я тестирую веб-приложение.Я использую Selenium + Java.Я хочу проверить то же самое на десктопе и мобильном телефоне.Тесты на десктопе в порядке, но когда я использую mobileEmulation (Nexus 5) и делаю тот же тест на одном сайте, тест падает.В журналах говорится, что вебдрайвер делает клик (без ошибок), но на самом деле это не так.Я без проблем щелкнул следующий сайт, но когда я хочу щелкнуть по предыдущему, это сделать невозможно.

Я пробовал разные ожидания, например:

WebDriverWait wait = new WebDriverWait(driver,10);
wait.until(ExpectedConditions.elementToBeClickable(element));
wait.until(ExpectedConditions.visibilityOfAllElements(element));

или:

Thread.sleep(5000);

Разные селекторы:

 @FindBy(xpath="/html[1]/body[1]/section[1]/main[1]/div[1]/div[1]/div[3]/div[2]/div[1]/ul[1]/li[2]/a[1]")

 @FindBy(xpath = "//a[contains(text(),'Poprzednia')]")

 @FindBy(css = "body.indexpage:nth-child(2) section.content_wrap.container-fluid:nth-child(2) main.content_data.col-md-12 div.content_data div.dataTables_wrapper.form-inline.dt-bootstrap.no-footer:nth-child(2) div.row:nth-child(3) div.col-sm-7 div.dataTables_paginate.paging_simple_numbers ul.pagination li.paginate_button.previous:nth-child(1) > a:nth-child(1)")

Разные клики:

this.element.click();

JavascriptExecutor executor = (JavascriptExecutor)driver;
executor.executeScript("arguments[0].click();", element);

Actions builder = new Actions(driver);
builder.moveToElement(poprzedniaStrona).click(element);
builder.perform();

Я думаю, что проблема в том, что стиль (выравнивание текста) сайта меняется.Я устал, чтобы изменить его, как в версии Deskop, но это не работает:

JavascriptExecutor executor = (JavascriptExecutor)driver;
executor.executeScript("arguments[0].setAttribute('style', 'text-align: right;')", test1);

где:

@FindBy(xpath = "//div[@id='sg-datatables-pllistypl_datatable_paginate']")
WebElement test1;

HTML (элемент, который я хочу нажать):

<a href="#" aria-controls="sg-datatables-pllistypl_datatable" data-dt-idx="0" tabindex="0" style="">Poprzednia</a>

HTML (элемент с другим стилем):

<div class="dataTables_paginate paging_simple_numbers" id="sg-datatables-pllistypl_datatable_paginate"><ul class="pagination"><li class="paginate_button previous disabled" id="sg-datatables-pllistypl_datatable_previous" style=""><a href="#" aria-controls="sg-datatables-pllistypl_datatable" data-dt-idx="0" tabindex="0" style="">Poprzednia</a></li><li class="paginate_button active"><a href="#" aria-controls="sg-datatables-pllistypl_datatable" data-dt-idx="1" tabindex="0">1</a></li><li class="paginate_button "><a href="#" aria-controls="sg-datatables-pllistypl_datatable" data-dt-idx="2" tabindex="0">2</a></li><li class="paginate_button next" id="sg-datatables-pllistypl_datatable_next"><a href="#" aria-controls="sg-datatables-pllistypl_datatable" data-dt-idx="3" tabindex="0">Następna</a></li></ul></div>

Браузер: Chrome 75

ChromeDriver: 75.0.3770.90

Буду очень признателен за помощь:)

Correct SS

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...