selenium - 使用 Selenium Webdriver 测试 ZK 应用程序

标签 selenium xpath selenium-webdriver automated-tests zk

我最近开始研究 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>

最佳答案

I'm looking for the xpath of login and password input fields. Programming language is java and I using Chromedriver.

不需要做额外的事情,使用xpath来定位想要的元素,你可以使用By.name()定位器可轻松定位所需元素,如下所示:-

WebElement user = driver.findElement(By.name("j_username"));

WebElement password = driver.findElement(By.name("j_password"));

关于selenium - 使用 Selenium Webdriver 测试 ZK 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39989070/

相关文章:

ruby - 下拉菜单在应该被选中的时候没有被选中……为什么?

selenium - 在 selenium webdriver 中上传多个文件

html - 使用 XPATH 定位嵌套的 HTML 数据属性

xmlstarlet 选择并更新 xml

java - 如何通过使用 Android 移动设备 selenium 向下滚动将所有 contentNames 添加到列表中?

python - Selenium Webdriver 也在寻找隐藏的值(value)

xml - 使用 Xpath 检查 XML 中重复节点下的节点是否存在

selenium - 使用Robot框架的未处理错误 “Cannot find context with specified id”

java - Selenium Grid并行测试时如何让hub决定执行哪个节点?

java - 如何使用断言命令?