Как нажать на веб-элемент для отображения даты выбора? - PullRequest
0 голосов
/ 25 февраля 2020

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

Любая помощь будет оценена

enter image description here

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

<input ng-disabled="viewOnly" class="formInput effectiveDates ng-pristine ng-isolate-scope hasDatepicker ng-empty ng-invalid ng-invalid-required ng-not-modified ng-touched" autocomplete="off" name="effectiveStartDate" ng-required="true" placeholder="Select/Enter date(mm/dd/yyyy)" type="search" ng-model="authObj.authStartDate" value="" ng-keydown="preventUserEnterDateInfo($event)" datepicker="" minimumdate="02/27/2020" ng-change="effectiveDateChange(authObj.authStartDate)" ng-class="(authListForm.$submitted &amp;&amp; authListForm.effectiveStartDate.$invalid)?'reqd':''" id="dp1582663746532" required="required">

Ответы [ 3 ]

0 голосов
/ 26 февраля 2020

Вы можете попробовать нажать, используя JavascriptExecutor.

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

или вы можете попробовать нажать, используя координаты:

Actions builder = new Actions(driver);   
builder.moveToElement(element, 10, 25).click().build().perform();
0 голосов
/ 07 марта 2020

Я заметил, что для тега type установлено значение Search. Если вы хотите, чтобы браузер распознал его как ввод даты, измените его на type="date". Сам браузер вызовет свой указатель даты по умолчанию.

0 голосов
/ 26 февраля 2020

Требуемый элемент является элементом Angular, поэтому для определения местоположения / click() на элементе, который вам нужно вызвать WebDriverWait для elementToBeClickable(), можно использовать любой из следующих элементов: следующие стратегии локатора :

  • cssSelector:

    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("input.formInput.effectiveDates.ng-pristine.ng-isolate-scope.hasDatepicker.ng-empty.ng-invalid.ng-invalid-required.ng-not-modified.ng-touched[name='effectiveStartDate'][placeholder*='Enter date']"))).click();
    
  • xpath:

    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//input[@class='formInput effectiveDates ng-pristine ng-isolate-scope hasDatepicker ng-empty ng-invalid ng-invalid-required ng-not-modified ng-touched' and @name='effectiveStartDate'][contains(@placeholder, 'Enter date')]"))).click();
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...