需要帮助在硒中找到元素

时间:2015-01-28 14:47:45

标签: xpath selenium-webdriver element locate

有人可以帮助我找到一个元素(不使用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 

任何解决方案?

4 个答案:

答案 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']"));