Selenium 创建具有动态id的xpath

Selenium 创建具有动态id的xpath,selenium,xpath,Selenium,Xpath,我在创建xpath时遇到困难。我可以编写一个xpath并将其直接映射到id,它工作得很好。当我需要选择不同的产品时,问题就出现了。id的大部分是静态的,不会更改,但其余部分会更改。我尝试过用contains子句编写xpath,但仍然不起作用 以下是我尝试过的: //*[contains(@id, 'j_id0:j_id1:j_id6:section2:j_id34:j_id35:j_id67:j_id68:0:j_id138:j_id139:1:j_id219')] //*[@id='j_i

我在创建xpath时遇到困难。我可以编写一个xpath并将其直接映射到id,它工作得很好。当我需要选择不同的产品时,问题就出现了。id的大部分是静态的,不会更改,但其余部分会更改。我尝试过用contains子句编写xpath,但仍然不起作用

以下是我尝试过的:

//*[contains(@id, 'j_id0:j_id1:j_id6:section2:j_id34:j_id35:j_id67:j_id68:0:j_id138:j_id139:1:j_id219')]


//*[@id='j_id0:j_id1:j_id6:section2:j_id34:j_id35:j_id67:j_id68:']/option[5]
下面是我编写xpath的代码:

 <select id="j_id0:j_id1:j_id6:section2:j_id34:j_id35:j_id67:j_id68:0:j_id138:j_id139:0:j_id222" name="j_id0:j_id1:j_id6:section2:j_id34:j_id35:j_id67:j_id68:0:j_id138:j_id139:0:j_id222" class="user-success">
    <option value="">--None--</option>
    <option value="Budget">Budget</option>
    <option value="Drop/New">Drop/New</option>
    <option value="Management Change">Management Change</option>
    <option value="Never Fulfilled">Never Fulfilled</option>
    <option value="Product Swap">Product Swap</option><option value="Renewal">Renewal</option><option value="Stacked">Stacked</option></select>
尝试使用以下命令:

 //div[@class='user-success']/option[5]

这样,您就不必担心更改xpath。

提供更多信息:1。你的确切测试步骤是什么?2.什么对你有用?显示代码。3.你被困在哪里?4.提供错误跟踪。5.提供相关的HTML DOM。我们正在使用一个名为ITAS Fusion的自动化工具。它是一个基于SeleniumWebDriver的工具。测试人员能够通过使用名称、Id、Xpath、Css、链接文本、部分链接文本、Id标签和活动元素映射到网站上的控件。如果我将它映射到特定的idj_id0:j_id1:j_id6:section2:j_id34:j_id35:j_id67:j_id68:0:j_id138:j_id139:0:j_id222,测试运行正常。当与id关联的产品发生更改时,会出现问题。在id中,只有值j_id168:0更改为j_id168:1、j_id168:2等-无预算Drop/NewManagement更改从未实现产品SwaprenewalStacked请不要在注释中发布长代码或HTML。它们几乎无法阅读。而是编辑你的问题,并将它们包含在可以正确格式化的地方。请至少给出一个示例,说明您正在查找的HTML元素的前后顺序,以便我们可以看到ID是如何变化的。