2011-06-05 82 views
2

我无法通过selenium使用'style'属性来获取元素。问题是,使用XPath选择我能够做到这一点:问题:通过使用selenium的CSS选择器属性'style'来获取元素

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选择器进行导航。我描述了这个问题,因为我想对这两种方法的使用进行比较(我怀疑xpath的使用并不如它应该那样)

回答

3

我做了广泛的实验比较和对比的XPath,CSS和DOM定位器的硒和发现,虽然人们可以从XPath或DOM,一个访问style属性不能从CSS(就像你推测)。您可以在我的快速参考图表XPath, CSS, DOM and Selenium: The Rosetta Stone(最近在Simple-Talk.com上发布)中找到那条珍闻(请参阅脚注2)以及我的完整分析。

0

*=运算符不在CSS2中,所以根据您正在使用的Selenium版本,它可能不适用于您。

相关问题