Java 如何使用extJs按钮的跨距名称单击该按钮

Java 如何使用extJs按钮的跨距名称单击该按钮,java,button,selenium,extjs,selenium-webdriver,Java,Button,Selenium,Extjs,Selenium Webdriver,我们尝试模拟的web应用程序中有一个按钮具有动态id。唯一可识别的重复出现元素是span标签(代码中的粗体)。是否有任何方法或定位器可用于单击按钮 <em id="button-1723-btnWrap"> <button id="button-1723-btnEl" type="button" class="x-btn-center" hidefocus="true" role="button" autocomplete="off" style="width: 69px;

我们尝试模拟的web应用程序中有一个按钮具有动态id。唯一可识别的重复出现元素是span标签(代码中的粗体)。是否有任何方法或定位器可用于单击按钮

<em id="button-1723-btnWrap">

<button id="button-1723-btnEl" type="button" class="x-btn-center" hidefocus="true" role="button" autocomplete="off" style="width: 69px; height: 16px;">

<span id="button-1723-btnInnerEl" class="x-btn-inner" style="width: 69px;">Save</span>

<span id="button-1723-btnIconEl" class="x-btn-icon x-icn-save">
</span>

</button>

</em>

拯救

在定义按钮时,您确实应该为ExtJS上的按钮设置
itemId
。会让事情变得更容易

但如果不可能的话。尝试类似“获取”按钮的操作,该按钮包含包含文本内容的span
Save

By.xpath("//button[span='Save']")
By.xpath("//button/span[text()='Save']")
您可以使用文本内容
Save

By.xpath("//button[span='Save']")
By.xpath("//button/span[text()='Save']")

如果您在创建按钮时可以在ExtJS上设置
itemId
,那么会更容易。如果元素具有动态id,请使用Xpath。@ikettu:谢谢您的帮助,但不幸的是,我没有成功!我希望您能找到合适的xpath。您可以快速测试不同的变体,例如编辑的。为测试添加了另一个变体。这是您需要的,还是您需要进一步的帮助?