【发布时间】:2017-02-20 16:37:45
【问题描述】:
我最近开始研究 Java 语言的 Selenium Webdriver (Chrome)。我的应用程序是使用 zk 框架开发的,因此它的 ID 是随机生成的。例如:
/div[@id='z_j0_7!cave']/form[@id='loginForm']/table[@id='z_j0_9']/tbody/tr[@id='z_j0_a!chdextr']/td/table[@id='z_j0_a']/tbody/tr[@id='z_j0_a!cave']/td[@id='z_j0_c!chdextr']/input[@id='z_j0_c']
如何找到此类元素的 xpath?
zul文件是这样的:
<h:form id="loginForm" action="j_spring_security_check" method="POST">
<vbox sclass="login_grid z-grid" spacing="2px">
<hbox widths="7em, 8em">
<label value="${c:l('login')}:"/>
<textbox id="login" name="j_username" value="${LoginForm.login}" use="de.hybris.platform.cscockpit.components.login.LoginTextBox"/>
</hbox>
<hbox widths="7em, 8em">
<label value="${c:l('password')}:"/>
<textbox type="password" id="pw" name="j_password" value="${LoginForm.password}" use="de.hybris.platform.cscockpit.components.login.PasswordTextBox"/>
</hbox>
</vbox>
</h:form>
在开发者模式下查看:(对于标签用户 id 及其输入字段)
<table id="z_38_a" z.type="zul.box.Box" class="z-hbox" z.zcls="z-hbox" cellpadding="0" cellspacing="0">
<tbody>
<tr id="z_38_a!cave" valign="top">
<td id="z_38_b!chdextr" z.coexist="true" align="left" style="width:7em"> <span id="z_38_b" class="z-label" z.zcls="z-label">ユーザー ID:</span>
</td>
<td id="z_38_b!chdextr2" class="z-hbox-sep">
</td>
<td id="z_38_c!chdextr" z.coexist="true" align="left" style="width:8em"> <input id="z_38_c" z.type="zul.vd.Txbox" class="z-textbox" z.zcls="z-textbox" type="text" name="j_username" value="admin">
</td>
</tr>
</tbody>
</table>
【问题讨论】:
-
你能分享相关的HTML吗??
-
@SaurabhGaur.. 我已经更新了问题。
-
告诉我你想定位哪个元素??因为我在这里看不到任何表格 HTML.. 并且还提到了您的编程语言..
-
该页面是由 zk 创建的,因此它不是纯 html,而是具有 zul 标签,如问题所示。我正在寻找登录名和密码输入字段的 xpath。我可以粘贴在 firepath 或开发人员模式下看到的视图。
-
编程语言是java,我用的是Chromedriver。
标签: selenium xpath selenium-webdriver automated-tests zk