有人可以帮助我找到一个元素(不使用xpath),该元素使用<i id="ext-gen759" class="icon-tool"></i>
标记下的<div>
显示。 HTML如下:
<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
- &gt; id是动态的
By.XPath
- &gt;不稳定
我在没有得到结果的情况下尝试了以下内容:
By.className("icon-tool") -- > not working
By.partialLinkText("icon-tool") --> not working
任何解决方案?
答案 0 :(得分:2)
您可以依赖id
使用的部分,例如starts-with()
:
//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]
答案 1 :(得分:1)
使用xpath
应该这样做。您可能需要确保该页面上唯一具有相同条件的元素i
//i[contains(@id,'ext-gen')]
答案 2 :(得分:1)
通过css选择器给find元素一个机会?
driver.find_element_by_css_selector('i.icon-tool')
python文档在这里http://selenium-python.readthedocs.org/en/latest/locating-elements.html
答案 3 :(得分:0)
您可以使用css选择器找到它:
driver.findElement(By.cssSelector("i[class='icon-tool']"));