Geb不会在框架的输入字段中插入文本

时间:2017-08-21 13:52:24

标签: groovy automated-tests spock geb

我的页面上有以下设置:

disable xml validation

我想在id

的字段中写一个文本
  

FNAME

我尝试了几个选项,但以下是最后一个选项。

<html>
<body>
    <frame name="header" ></frame>
    <frame name="footer" ></frame>
    <frame name="inline" >

        <input type="text" id:"fname">

     </frame>

<body>
</html>

代码本身运行成功,没有任何错误。但是它不会填充输入字段。调试也没有提供太多信息。

有没有人知道这里发生了什么。

2 个答案:

答案 0 :(得分:0)

Geb内置了可用于填写字段,从列表中选择或选中复选框等的模块。您需要Text Input module

修改您的页面对象,如下所示。这将导入TextInput模块以供使用,然后初始化您的&#39; framefirstname&#39;内容作为一个模块,让您访问Geb提供的各种方法。如前一条评论中所述,请调整您的框架名称&#39;根据{{​​3}}

的内容
<div id="parentId">
  <div class="row">
    <div class="col-md-4">
      <div class="plugin-class-name"></div>
    </div>
    <div class="col-md-4">
      <div class="plugin-class-name"></div>
    </div>
    <div class="col-md-4">
      <div class="plugin-class-name">
        <div id="childId1">
          <div class="plugin-class-name"></div>
          <div class="plugin-class-name"></div>
          <div class="plugin-class-name"></div>
          <div class="plugin-class-name"></div>
        </div>
      </div>
    <div class="col-md-4">
  <div id="childId2">
    <div class="plugin-class-name"></div>
    <div class="plugin-class-name"></div>
    <div class="plugin-class-name"></div>
    <div class="plugin-class-name"></div>
  </div>
  </div>
  <div class="plugin-class-name"></div>
</div>

Geb为文本输入模块提供.text函数,因此您在测试中需要做的就是以下内容,它应该设置您的输入字段:

import geb.module.TextInput
framefirstname { $('input', id:'fname').module(TextInput) }

答案 1 :(得分:0)

到目前为止,你做得很好。如果页面在新标签中?如果是,你可以使用NewWindow或withWindow