【Selenium专题】 FAQ_对象识别_Compound class names are not supported

测试代码

 1     public void login(){
 2 
 3         WebDriver driver = new ChromeDriver();
 4 
 5         driver.get("http://IP:Port/client/login.html");
 6 
 7         driver.findElement(By.id("username")).sendKeys("admin");
 8 
 9         driver.findElement(By.id("pwd")).sendKeys("111111");
10 
11         driver.findElement(By.className("btn btn-primary")).click();
12 
13     }

 

报错信息

Starting ChromeDriver (v2.9.248315) on port 8850

Starting ChromeDriver (v2.9.248315) on port 26269

Exception in thread "main" org.openqa.selenium.IllegalLocatorException: Compound class names are not supported. Consider searching for one class name and filtering the results.

Build info: version: '2.23.1', revision: '17143', time: '2012-06-08 18:59:28'

System info: os.name: 'Windows 7', os.arch: 'x86', os.version: '6.1', java.version: '1.7.0_60'

Driver info: driver.version: unknown

    at org.openqa.selenium.By.className(By.java:131)

    at omstest.find.main(find.java:52)

 

问题分析

WerbDriverby.className() 不支持含有空格的class名称,第1行代码中,className"btn btn-primary"中包含空格,引发报错。

 

解决方案 

  1. 使用通配符,修改className,使其不包含空格
  2. 更换其他属性识别
posted @ 2014-07-04 15:05  钟灵.毓秀  阅读(733)  评论(0编辑  收藏  举报