首页 文章

无法找到日期选择器的元素

提问于
浏览
0

我无法找到日期选择器的元素 . 我尝试了CssSelector和xpath以及所有内容 . 以下是我试过的代码 .

Code :

WebElement dateWidget = driver.findElement(By.xpath(".//*[@id='dp1469511990123']"));
        List<WebElement> columns=dateWidget.findElements(By.tagName("td"));

        for (WebElement cell: columns)
        {
             if (cell.getText().equals("21"))
             {
              cell.findElement(By.linkText("21")).click();
              break;
             }
        }

这是HTML代码 .

HTML :

<input id="dp1469511990123" class="ng-pristine ng-untouched ng-valid hasDatepicker ng-not-empty" type="text" ng-disabled="input.p1Edit==0" ng-model="vendor.companyStartedDate" ui-date="comp_st_date" disabled="disabled"/>

Here is the Error:

org.openqa.selenium.NoSuchElementException:无法找到元素:> {“method”:“xpath”,“selector”:“.//* [@ id ='dp1469511990123']”}命令持续时间或超时:10.07秒有关此错误的文档,请访问:> http://seleniumhq.org/exceptions/no_such_element.html构建信息:版本:'2.53.0',修订版:>'35ae25b1534ae328c771e0856c93e187490ca824',时间:'2016-03-15 10 :43:46'系统信息:主机:'user-PC',ip:'192.168.1.52',os.name:'Windows 7',> os.arch:'amd64',os.version:'6.1', java.version:'1.8.0_51'驱动程序信息:org.openqa.selenium.firefox.FirefoxDriver

1 回答

  • 3

    id 值看起来是动态生成的,我会使用 ng-model 代替:

    driver.findElement(By.cssSelector("[ng-model='vendor.companyStartedDate']"));
    

    计算可读性作为奖励 .

    并且,看看你是否需要wait until the presence of the element .

相关问题