Изменить страницу в Gmail с помощью Selenium / Katalon (Java) - PullRequest
0 голосов
/ 04 апреля 2019

Я хотел бы открыть Gmail, войти в систему, исследовать заголовок, открыть и сохранить текст всех непрочитанных писем с таким заголовком.

Я написал код Java для анализа первой страницы поиска, но не могу автоматизировать изменение страницы; Я пробовал разные пути xpath, чтобы нажать на стрелку, которая меняет страницу, но никто не работает.

Мое рассуждение было таким: первую страницу электронных писем (если не пустую) всегда нужно анализировать, независимо от того, включена кнопка изменения страницы или нет (то есть независимо от того, есть ли другие страницы), затем после анализа На первой странице, если кнопка для смены страницы включена, нажмите на нее и проанализируйте следующую страницу, иначе она выйдет из цикла. Поэтому я подумал написать цикл так:

i = 0;
while (i == 0 || (!driver.findElement(By.xpath("XPATH TO FIND")).isEnabled() && i > 0)) {
        List<WebElement> inboxUnreadEmails = driver.findElements(By.xpath("//div[@role=\"main\"]/div/div//tr[contains(@class, 'zE')]"));
            i++;
            for (WebElement email : inboxUnreadEmails) {
                   ANALYZE EMAIL.....
            }
}

Я использовал переменную i, чтобы всегда делать первую итерацию.

Я также заметил, что разница между включенной кнопкой и отключенной кнопкой определяется наличием атрибута «aria-disabled = true», когда кнопка отключена (обратите внимание, что в случае включенной кнопки этот атрибут не ложно, но полностью отсутствует):

<div id=":ig" class="T-I J-J5-Ji amD T-I-awG HeQuj T-I-ax7 T-I-Js-IF T-I-JE L3" role="button" aria-disabled="true" data-tooltip="New" aria-label="New" style="user-select: none;"><span class="amF" aria-hidden="true">&nbsp;</span><img class="amI T-I-J3" src="images/cleardot.gif" alt=""></div>

так что, возможно, условие while может использовать эту функцию, возможно, так:

while (i == 0 || (driver.findElement(By.xpath("XPATH TO FIND")).getAttribute("aria-disabled") == null && i > 0))

но я не уверен, что метод getAttribute возвращает ноль, если атрибут отсутствует.

Вы можете мне помочь?

...