需要帮助寻找硒中的元素



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

最新更新