问题:使用CSS选择器使用selenium属性'style'来获取元素

时间:2011-06-05 09:52:53

标签: python xpath selenium css-selectors

我无法使用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 :(得分:3)

我做了大量的实验,比较和对比Selenium的XPath,CSS和DOM定位器,发现虽然可以从XPath或DOM访问style属性,但是一个不能来自CSS(正如你猜测的那样)。您可以在我最近在Simple-Talk.com上发布的快速参考图表XPath, CSS, DOM and Selenium: The Rosetta Stone中找到该花絮(参见脚注2)以及我的完整分析。

答案 1 :(得分:0)

*=运算符不在CSS2中,因此根据您使用的Selenium版本,您可能无法使用它。