Как выбрать текущую дату и / или использовать системные переменные или системные вызовы для пересылки информации с помощью Selenium в Python как даты и форматы имен - PullRequest
0 голосов
/ 27 января 2020

Поэтому я пытаюсь выбрать текущую дату или использовать системный вызов из Powershell или Linux / Ma c для системной переменной с модулем ОС. Мне нужна помощь в понимании того, как лучше всего это сделать.

  • Вариант 1. Как выбрать выделенную дату в календаре
  • Вариант 2. Как использовать системную переменную, которая будет форматировать дату в соответствии с моим желанием

Предпочтительно мне нравится вариант 2, потому что системная переменная всегда будет устанавливаться переменной компьютера. Так что я знаю, что дата всегда то, что мне нужно и актуально.

Вот картинка. enter image description here

Обратите внимание, что выделенная сегодня часть является 27-й, то есть сегодняшней датой. Тем не менее, я думаю, что системная переменная может быть в состоянии просто отформатировать дату к тому, что я хочу. В PowerShell я знаю, что команда Get-Date -UFormat %D. Тем не менее, я хотел бы знать, как выдать это, я также думаю, что XPATH, который я имею, неправильный.

# Select Current Date
# Set Variable for OS_DATE to be in Format MM/DD/YYYY
# For Powershell $(Get-Date -UFormat %D)
# //*[@id='createdTo']/option[text()='01/27/2020']
#element = WebDriverWait(browser, 20).until(
#                                EC.element_to_be_clickable((By.XPATH,"//*[@id='createdTo']/option[text()='01/27/2020']")))
#element.click();

У кого-нибудь есть предложения? Я пытаюсь ввести дату как всегда текущую, вот источник элемента, который мне нужно обновить.

<input type="text" aria-labelledby="dateTo" class="form-control ng-pristine ng-isolate-scope ng-valid-date ng-not-empty ng-valid ng-valid-required ng-touched" datepicker-popup="MM/dd/yyyy" ng-model="dateTo" show-weeks="false" is-open="uploadedTo" placeholder="MM/DD/YYYY" ng-change="changeUploadDate();" ng-keydown="dateInputKeyDown($event,'uploadedTo')" required="" name="createdTo" id="createdTo" style="">

Также вот исходный код моего репозитория Github

Я работал над этим некоторое время и даже воспользовался некоторыми советами из ответа, который я получил снизу. Я наконец понял, как обновить поле. Тем не менее, это не перезаписывает поле. Я прилагаю скриншот и код, который обновляет поле, чтобы продемонстрировать общую проблему.

enter image description here

Вот код, который должен ввести дату

element = WebDriverWait(browser, 20).until(
                EC.element_to_be_clickable((By.XPATH,"//input[@id='createdTo']")))
element.send_keys(date);

В настоящее время код закомментирован как неправильная дата запрещает загрузку файла.

1 Ответ

1 голос
/ 30 января 2020

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

element = WebDriverWait(browser, 20).until(
                EC.element_to_be_clickable((By.XPATH,"//input[@id='createdTo']")))
element.send_keys(date);

Переменная, очевидно, является датой, которая определяется как

from datetime import date

# System Variables
today = date.today()
date = today.strftime("%m/%d/%Y")
...