首先,得排除是否是定位的xpath路径有问题,如果是用xpath定位,其中用@class属性来定位,也会报这个错误(特别是class中含有复合类的定位)。下面用备份软件删除任务的弹出div区中的确认按钮定位为例:

bElement cf_button=driver.findElement(By.xpath("//div[@class='ui-dialog-buttonset']"));

用上面的class定位,也是有问题的。用下面的路径也是有问题的,都会报上面提到的异常内容。

Xpath=//div[@class=ui-dialog-buttonpane ui-widget-content ui-helper-clearfix]/div/button

这个xpath中的class属于复合类。

 

如果用下面的定位,就不会报这个异常:

WebElement cf_button=driver.findElement(By.xpath("//div[4]/div[3]/div[1]/button"));

简而言之

Class定位可能会存在这个问题 id或者别的xpath则不会