首页 > 代码库 > 【Selenium】 FAQ_对象识别_Compound class names are not supported
【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 8850Starting ChromeDriver (v2.9.248315) on port 26269Exception 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)
问题分析
WerbDriver中by.className() 不支持含有空格的class名称,第1行代码中,className"btn btn-primary"中包含空格,引发报错。
解决方案
- 使用通配符,修改className,使其不包含空格
- 更换其他属性识别
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。