Selenium: установить триггер для действия на основе часов сайта? - PullRequest
0 голосов
/ 27 марта 2020

Я пытаюсь выполнить указанное c действие в указанное c время. Например, щелкнув «Ссылка A» точно в 21: 30: 30.123 (имеет значение Миллисекунды). Я использовал селен для щелчка детали, но проблема связана с установкой времени.

Поскольку часы на сайте имеют разницу по местному времени (О программе 38.ххх секунд). Я пробовал это:

public static void main(String[] args) throws InterruptedException {

     Calendar TargetTime = Calendar.getInstance();
     TargetTime.set(Calendar.YEAR   , 2020);
     TargetTime.set(Calendar.MONTH  ,  2 ); 
     TargetTime.set(Calendar.DATE   ,  27 );
     TargetTime.set(Calendar.HOUR   ,  21 );
     TargetTime.set(Calendar.MINUTE ,  30 );
     TargetTime.set(Calendar.SECOND ,  30 );

     Date x = TargetTime.getTime(); 
     long m = x.getTime();

     Date CurrentTime = new Date();
     long n = CurrentTime.getTime();

     Thread.sleep(m - n+ 36500);

     System.out.println("Hello World"); 
     //webDriver1.click();       
}

Но есть некоторые проблемы:

  1. Код автоматически добавляет один к номеру месяца, поэтому мне пришлось ввести его с минус 1.
  2. Я не могу установить Миллисекунды в TargetTime.
  3. Существует разница между CurrentTime и фактическим часовым поясом (я не знаю точный, но около 38se c) Также есть разница между часами веб-сайта и фактическим Время (около 1,5 сек c, это потому, что я добавляю 36,5 секунд вместо 38).
  4. Я пытался выяснить точную разницу во времени методом проб и ошибок, но мне это не удалось. Поскольку скорость подсчета ЦП постоянно меняется, иногда она идет вперед, а иногда назад часов веб-сайта.

Тогда я подумал, что если я смогу извлечь время из веб-сайта напрямую, все эти проблемы исчезнут. Но я не знаю, как это сделать. Элемент часов сайта выглядит следующим образом (8:36:33), как указано в приведенном ниже элементе div:

<div id="TimerDiv" style="direction: ltr; font-weight:bold; font-family:Arial; line-height:22px; font-size: 12px;">08<span style="color:#999; margin:0 2px">:</span>36<span style="color:#999; margin:0 2px">:33</span></div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...