问题:在selenium中通过CSS选择器属性' style'获取元素
我在用selenium获取带有'style'属性的元素时遇到了麻烦。问题是,使用xpath选择器我可以成功找到这个元素:
int(self.selenium.get_element_index("//div[contains(@class,'%s')][contains(@style,'%s')][contains(@style,'%s')]"%(pin_class_name,map_object_position[0],map_object_position[1])))
^ 这个可以返回结果
但是当我尝试用css选择器去获取这个元素时,系统却提示找不到这样的元素:
int(self.selenium.get_element_index("css=div[class*='%s'][style*='%s'][style*='%s']"%(pin_class_name,map_object_position[0],map_object_position[1])))
有没有人遇到过这个问题,或者知道是否可以通过css选择器使用'style'属性来导航。我描述这个问题是因为我想比较这两种方法的使用(我怀疑xpath的使用没有达到预期效果)
2 个回答
0
*=
这个操作符在CSS2中是不存在的,所以根据你使用的Selenium版本,它可能对你来说不可用。
3
我做了很多实验,比较了XPath、CSS和DOM这三种方式在Selenium中的使用情况。结果发现,虽然可以通过XPath或DOM来获取style
属性,但用CSS却不行(正如你所猜测的那样)。你可以在我的快速参考表中找到这个小知识点(见脚注2),还有我完整的分析,链接在这里:XPath, CSS, DOM和Selenium:罗塞塔石碑,这个内容最近在Simple-Talk.com上发布。