Selenium 同一页面中重复字段名的Xpath解决方案
该网页中有三个保存按钮,具有动态ID。请指导我如何定义最佳xpath,目前我已应用完整的xpath起始html节点 第一个保存按钮HTML代码Selenium 同一页面中重复字段名的Xpath解决方案,selenium,xpath,selenium-webdriver,Selenium,Xpath,Selenium Webdriver,该网页中有三个保存按钮,具有动态ID。请指导我如何定义最佳xpath,目前我已应用完整的xpath起始html节点 第一个保存按钮HTML代码 <button id="j_idt131" name="j_idt131" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only button" onclick="PrimeFaces.ab({source:'j_idt131',update:'c
<button id="j_idt131" name="j_idt131" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only button" onclick="PrimeFaces.ab({source:'j_idt131',update:'csqa_form',oncomplete:function(xhr,status,args){if (args && !args.validationFailed) qaChangeDialog.show();}});return false;" type="submit" role="button" aria-disabled="false"><span class="ui-button-text ui-c">Save</span></button>
<button id="j_idt104" name="j_idt104" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only button" onclick="PrimeFaces.ab({source:'j_idt104',update:'cemail_form',oncomplete:function(xhr,status,args){if (args && !args.validationFailed) emailChangeDialog.show();}});return false;" type="submit" role="button" aria-disabled="false"><span class="ui-button-text ui-c">Save</span></button>
<button id="j_idt82" name="j_idt82" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only button" onclick="PrimeFaces.ab({source:'j_idt82',update:'cpwd_form',oncomplete:function(xhr,status,args){if (args && !args.validationFailed) pwdChangeDialog.show();}});return false;" type="submit" role="button" aria-disabled="false"><span class="ui-button-text ui-c">Save</span></button>
保存
第二个保存按钮HTML代码
<button id="j_idt131" name="j_idt131" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only button" onclick="PrimeFaces.ab({source:'j_idt131',update:'csqa_form',oncomplete:function(xhr,status,args){if (args && !args.validationFailed) qaChangeDialog.show();}});return false;" type="submit" role="button" aria-disabled="false"><span class="ui-button-text ui-c">Save</span></button>
<button id="j_idt104" name="j_idt104" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only button" onclick="PrimeFaces.ab({source:'j_idt104',update:'cemail_form',oncomplete:function(xhr,status,args){if (args && !args.validationFailed) emailChangeDialog.show();}});return false;" type="submit" role="button" aria-disabled="false"><span class="ui-button-text ui-c">Save</span></button>
<button id="j_idt82" name="j_idt82" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only button" onclick="PrimeFaces.ab({source:'j_idt82',update:'cpwd_form',oncomplete:function(xhr,status,args){if (args && !args.validationFailed) pwdChangeDialog.show();}});return false;" type="submit" role="button" aria-disabled="false"><span class="ui-button-text ui-c">Save</span></button>
保存
第三个保存按钮HTML代码
<button id="j_idt131" name="j_idt131" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only button" onclick="PrimeFaces.ab({source:'j_idt131',update:'csqa_form',oncomplete:function(xhr,status,args){if (args && !args.validationFailed) qaChangeDialog.show();}});return false;" type="submit" role="button" aria-disabled="false"><span class="ui-button-text ui-c">Save</span></button>
<button id="j_idt104" name="j_idt104" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only button" onclick="PrimeFaces.ab({source:'j_idt104',update:'cemail_form',oncomplete:function(xhr,status,args){if (args && !args.validationFailed) emailChangeDialog.show();}});return false;" type="submit" role="button" aria-disabled="false"><span class="ui-button-text ui-c">Save</span></button>
<button id="j_idt82" name="j_idt82" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only button" onclick="PrimeFaces.ab({source:'j_idt82',update:'cpwd_form',oncomplete:function(xhr,status,args){if (args && !args.validationFailed) pwdChangeDialog.show();}});return false;" type="submit" role="button" aria-disabled="false"><span class="ui-button-text ui-c">Save</span></button>
保存
既然您知道按钮的顺序,您可以试试这个xpath
//button[contains(@id,"j_idt")][1]
//button[contains(@id,"j_idt")][2]
//button[contains(@id,"j_idt")][3]
您好,您可以通过粘贴链接提供完整的页面标记吗
我认为您可以通过选择//标签[.='Answert3']/以下::按钮[.='Save']来使用AxisName,但根据W3C,它以[1]开头。如果我错了,请纠正我。@Vignesh你是对的。XPath是一种有趣的语言,它使用基于1的数组而不是基于0的数组(这在许多其他语言中很常见)@Vignesh当我将相同的概念应用于锚标记时,它不起作用//a[contains(text(),'Pending New Business')][1]@Thirumalai try//a[contains(,'Pending New Business')][1]@Thirumalai也可以更好地解释这一点