Xpath 需要帮助找到硒元素吗

Xpath 需要帮助找到硒元素吗,xpath,selenium-webdriver,element,locate,Xpath,Selenium Webdriver,Element,Locate,有人能帮我找到一个元素(不使用xpath),它在标记下使用:显示。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. &l

有人能帮我找到一个元素(不使用xpath),它在
标记下使用:
显示。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>

任何解决方案?

使用
xpath
都可以做到这一点。您可能需要确保这是页面上唯一具有相同条件的元素
i

//i[contains(@id,'ext-gen')]

使用
xpath
应该可以做到这一点。您可能需要确保这是页面上唯一具有相同条件的元素
i

//i[contains(@id,'ext-gen')]

您可以使用
id
的部分,例如使用
start-with()

或CSS选择器:

driver.findElement(By.cssSelector("i[class='icon-tool']"));

您可以使用
id
的部分,例如使用
start-with()

或CSS选择器:

driver.findElement(By.cssSelector("i[class='icon-tool']"));

给css选择器一个查找元素的机会

driver.find_element_by_css_selector('i.icon-tool')

python文档在这里

是否有机会通过css选择器查找元素

driver.find_element_by_css_selector('i.icon-tool')

python文档在这里

您可以使用css选择器找到它:

driver.findElement(By.cssSelector("i[class='icon-tool']"));

您可以使用css选择器找到它:

driver.findElement(By.cssSelector("i[class='icon-tool']"));

为什么XPath表达式不稳定?输入HTML中有哪些内容不稳定?什么是稳定的并将目标节点与其他节点区分开来?当我使用xPath时,每次运行都会得到不同的结果。。如果我刷新页面并重新运行测试,它将找不到带有xPath的实际元素。。我的网页显示了很多菜单/弹出窗口/工具提示(鼠标悬停),并且框架处于遮罩/未遮罩状态。。。大多数元素都是动态生成的。为什么XPath表达式不稳定?输入HTML中有哪些内容不稳定?什么是稳定的并将目标节点与其他节点区分开来?当我使用xPath时,每次运行都会得到不同的结果。。如果我刷新页面并重新运行测试,它将找不到带有xPath的实际元素。。我的网页显示了很多菜单/弹出窗口/工具提示(鼠标悬停),并且框架处于遮罩/未遮罩状态。。。大多数元素都是动态生成的。问题是-‘icon-tool’也在文档中的许多其他位置使用。您可以使用find_元素查找所有i.icon-tool并迭代结果。在任何情况下,您都需要一种方法来区分多个结果问题是-“icon-tool”也在文档中的许多其他位置使用。您可以使用find_元素来查找所有i.icon-tool并对结果进行迭代。在任何情况下,您都需要一种方法来区分多个结果,但“ext comp-”是整个文档中使用的通用格式,并且“图标工具”也在同一文档/页面中的任何位置使用。那么我如何才能只选择这一个元素呢?但是“ext comp-”是整个文档中使用的通用格式,并且“图标工具”也在同一文档/页面中的任何地方使用。那么我如何才能只选择这一个元素呢?如何编写一个CSS选择器来使用它的类名的某些部分(比如类名中的一些字符)来查找元素呢?类似于“contains(text())”?您需要为此向我提供
html
<代码>包含()函数不适用于css。这是一个xpath函数如何编写CSS选择器来使用其类名的某些部分(比如类名中的一些字符)查找元素?类似于“contains(text())”?您需要为此向我提供
html
<代码>包含()函数不适用于css。这是一个xpath函数