有人可以帮我找到一个元素(不使用xpath),该元素在<div>
标签下使用:<i id="ext-gen759" class="icon-tool"></i>
显示。该网页如下所示:
<div id="ext-comp-1089" class=" MiniTbar">
<a href="javascript:void(0);" id="ext-gen760" class=" active">
<i id="ext-gen759" class="icon-tool"></i> -->> need to locate this.
</a>
</div>
我不想使用:
By.Id
--> id 是动态的 By.XPath
-->不稳定
我尝试了以下方法,但没有得到结果:
By.className("icon-tool") -- > not working
By.partialLinkText("icon-tool") --> not working
有什么解决办法吗?
starts-with()
来依赖id
的部分:
//div[starts-with(@id, "ext-comp-")]/a[starts-with(@id, "ext-gen")]/i[@class="icon-tool"]
或者一个CSS选择器:
div[id^=ext-comp-] a.active[id^=ext-gen] i.icon-tool[id^=ext-gen]
使用xpath
应该这样做。您可能需要确保这是页面上唯一具有相同条件i
元素
//i[contains(@id,'ext-gen')]
给 css 选择器查找元素的机会?
driver.find_element_by_css_selector('i.icon-tool')
python文档在这里 http://selenium-python.readthedocs.org/en/latest/locating-elements.html
您可以使用 css 选择器找到它:
driver.findElement(By.cssSelector("i[class='icon-tool']"));