如何使用 selenium webdriver 识别长 class 名称

how to identify the long class names using selenium webdriver

我试图使用以下代码识别 class 的名称,但它一直在抛出错误:

WebElement startdate= images.findElement(By.className("gt-cur-date-val.start-date-val.ng-pristine.hasDatepicker.ng-invalid.ng-invalid-required.ng-touched"));

这里输入的 id 是 dp1473431696363 并且 classname 是 gt-cur-date-val start-date-val ng-pristine hasDatepicker ng-invalid ng-invalid-required ng-touched.

实际上你在使用 By.className() 时使用了 cssSelector 的语法,这是错误的。

您应该尝试使用 By.cssSelector() 作为 :-

WebElement startdate= images.findElement(By.className("input.gt-cur-date-val.start-date-val[ng-model='tripDetails.startDate']"));

注意 :- By.className() 不支持定位复合 class.

的元素