问题:在selenium中通过CSS选择器属性' style'获取元素

2 投票
2 回答
1619 浏览
提问于 2025-04-16 18:58

我在用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上发布。

撰写回答