0

我有一个包含几个不同输入字段和类型的对话框,如果该字段是,我想根据输入字段前面的书面名称进行检查

  1. 提出了
  2. 只读

困难在于我要检查不同类型的输入:

  1. 输入
  2. 文本区域
  3. div
  4. 选择

所以 HTML 就像:

<tr>
    <td>Name</td>
    <td><input ...></td>
</tr>
<tr>
    <td>Gender</td>
    <td><select ...></td>
</tr>
<tr>
    <td>information</td>
    <td><textarea ...></td>
</tr>
...and so on...

我的方法只获取字段前面的名称,以及是否应该显示它并且是只读的:

public boolean checkIfPresentedAndReadonly(String field, boolean present, boolean readonly){
        boolean result = false;

        try{
            WebElement element = find(By.xpath("//tr[td[@class='c1'][label[text()[contains(.,'"+field+"')]]]]/td[@class='c2']/div/*"));
            result = (checkForReadOnly(element) == readonly);
        }catch(NoSuchElementException e){
            return !present;
        }

        return result;
    }

我的 xpath 返回任何类型(可能是 div、select、input 等)....有没有一种很好的方法来找出类型WebElement?我考虑过查找类型,然后执行一些 if/else 语句<input>来检查状态,具体取决于输入类型,例如 for 类型元素是可写的。clear()sendKeys("..")

还是他们有任何其他可能的解决方案?

4

0 回答 0