有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何点击web元素来显示datepicker?

我找不到该框的元素,无法单击以弹出日期选择器

任何帮助都将不胜感激

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">

共 (1) 个答案

  1. # 1 楼答案

    所需的元素是Angular元素,因此要在元素上定位/click(),您需要为elementToBeClickable()诱导WebDriverWait,并且可以使用以下Locator Strategies之一:

    • 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();