List elements=driver.findElements(By.className(“col-xs-12 col-sm-12 col-md-12 col-lg-12”));
当我们用selenium库时,这样写就会报错
InvalidSelectorError: Compound class names not permitted
意思是定位语法错了。引起错误的原因是,classname中间带有空格,然后了解class属性,
class属性中间的空格并不是空字符串,那是间隔符号,表示的是一个元素有多个class的属性名称 (class属性是比较特殊的一个,除了这个有多个属性外,其它的像name,id是没多个属性的)
可以这样处理:
以 class=col-xs-12 col-sm-12 col-md-12 col-lg-12为例
1. 取单个class属性(如果属性唯一)
element=driver.findElement(By.className(“col-lg-12”));
2. css定位
element=driver.findElement(By.className(".col-xs-12.col-sm-12.col-md-12. col-lg-12"));
3. 取css的单个class属性也是可以的
element=driver.findElement(By.className(".col-xs-12"));
4. 直接包含空格的CSS属性定位大法(我觉得直接用这个比较舒服)
element=driver.findElement(By.cssSelector("[class=‘col-xs-12 col-sm-12 col-md-12 col-lg-12’]"));
selenium中class name带有空格的元素怎么定位报错InvalidSelectorError: Compound class names not permitted
最新推荐文章于 2024-01-17 10:14:07 发布