是否可以断言手动输入文本是否存在于文本字段中以验证“撤消”按钮的功能?

时间:2012-06-27 14:38:27

标签: java selenium webdriver selenium-webdriver

我的桌子下面有一张表格。您可以填写表单,但点击“撤消”按钮会将所有输入的信息恢复为编辑前的状态。

我想声明手动输入的文本,以便我可以确认“撤消”按钮正在还原字段。除非保存该项,否则'value'属性不会更改,因此我不能将其用于断言的属性。如果有帮助,则字段的XPath在下面。

<table id="userAdminForm" class="c4i-ui-fieldGrid">
  <tbody>
    <tr>
      <td class="c4i-labelCell">
      <td class="c4i-fieldCell" rowspan="1" colspan="1">
        <div class="c4i-fieldDiv rel" style="min-height: 36px">
           <input id="userName" class="ui-inputfield ui-inputtext ui-widget ui-state-default ui-corner-all" type="text" value="Super User" name="userName" role="textbox" aria-disabled="false" aria-readonly="false" aria-multiline="false">

2 个答案:

答案 0 :(得分:0)

您可以先使用 -

在用户名字段中输入一些文字
driver.findElement(By.id("userName")).sendKeys("some name");

然后您可以点击撤消按钮。如果您提供了html页面的完整源代码,那么我可以为您提供单击撤消按钮的代码。

然后通过 -

读取用户名字段中的文本
String text = driver.findElement(By.id("userName")).getText();

然后您可以验证文本的值并检查撤消按钮的功能。如果文本为空,则表示撤消按钮正常工作。

答案 1 :(得分:0)

我发现我需要从html中获取“value”属性才能获得文本。以下代码用于在运行时传递测试,如果“oldtext”字符串不是所需的文本,它将失败。

感谢Hari让我走上正轨。

WebElement userName = findElementById("userName");
    userName.click();
    userName.clear();
    userName.sendKeys("testforUndo");

    WebElement undo = findElementById("cancel");
    undo.click();

    String text = findElementById("userName").getAttribute("value");
    String oldtext = "Testing";

    Assert.assertTrue(text.equals(oldtext));