Java Selenium Нажмите определенную кнопку в определенный день

Итак, у меня проблема с нажатием кнопки в определенный день. У веб-сайта, для которого я пишу сценарий, есть несколько вариантов. Неделя, месяц и год. Когда вы нажимаете "Неделя", вы получаете возможность выбрать день недели. Понедельник, вторник и так далее. Когда вы нажимаете Месяц, вы получаете то же самое в течение нескольких месяцев.

Моя проблема в том, как мне автоматизировать это, чтобы, когда мне нужно выбрать день недели, он проверяет дату и выбирает правильную дату.

У меня нет проблем с проверкой даты или нажатием кнопки, я просто не знаю, как их совместить.

Привет. Добро пожаловать в SO. Покажите нам немного своего кода, чтобы нам было легче вам помочь.

Ludovit Mydla 03.01.2019 23:28
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
1
55
1

Ответы 1

У вас должна быть возможность найти совпадение между текущим днем ​​недели и одним из семи веб-элементов. Пример выбора дня недели в сети https://www.phpro.org/examples/Days-Of-Week-Dropdown.html:

public void selectCorrectWeekday() throws InterruptedException {

    String weekDayCapitalized = weekDay().substring(0, 1).toUpperCase() + weekDay().substring(1);
    driver.get("https://www.phpro.org/examples/Days-Of-Week-Dropdown.html");
    new Select(waitSec(driver, 10).until(ExpectedConditions.elementToBeClickable(By.id("day")))).selectByVisibleText(weekDayCapitalized);
    Thread.sleep(5000);

}

public WebDriverWait waitSec(WebDriver driver, int sec) {return new WebDriverWait(driver, sec);}    
public String weekDay() {return today().getDayOfWeek().name().toString().toLowerCase();}
public LocalDate today() {LocalDate today = LocalDate.now();return today;}

Однако ваш подход будет другим из-за исходного кода html.

Еще кое-что. Удалите Thread.sleep(5000);, который находится в selectCorrectWeekday(). Замените его более подходящим кодом, который, например, проверяет какое-то состояние.

Zhivko.Kostadinov 04.01.2019 14:45

Другие вопросы по теме