0

我正在尝试从以下位置重命名文件夹:

<li class="selected rename" id="labelset-624" folderid="624" foldertype="labelset" permissionlevel="2" labelsetid="624">
  <div class="folder-insert-drop ui-droppable"></div>
  <div class="clear"></div>
  <div class="folder-item droppable hoverable empty ui-droppable">
    <div id="mlink-labelset-624" class="folder-menu-link" data-hasfullperm="true" data-subfoldertype="undefined"></div>
    <div class="expander"></div>
    <div class="folder-name labelset label-set">New Label Set</div>
    <div class="target-bar"></div>
    <div class="folder-rename">
      <input value="New Label Set" id="folder-rename-624" maxlength="100" type="text">
    </div>

使用 Watir-webdriver 使用以下命令:

@b.li(:class, "selected rename").div(:class, "folder-rename").text_field.wait_until_present
@b.li(:class, "selected rename").div(:class, "folder-rename").text_field.set labelsetName
@b.li(:class, "selected rename").div(:class, "folder-rename").text_field.send_keys :return

它给了我以下错误:

Watir::Exception::UnknownObjectException: unable to locate element, using {:class=>"selected rename", :tag_name=>"li"}

当我运行我的测试脚本 (test-unit) 时,我可以看到 labelsetName 的值输入到文本字段中,但它很快消失并恢复为默认值。这会导致send_keys语句出错。

当我在 irb 中输入相同的命令时,它可以完美运行。我尝试在步骤之间添加长达 15 秒的睡眠,但无济于事。两者有什么不同的工作方式吗?有什么建议可以解决这个问题吗?

4

2 回答 2

0

除非您有其他令人信服的理由,否则请尝试使用以下id属性直接访问 <input> 标记:

b.text_field(:id => "folder-rename-624").set "foo"
b.text_field(:id => "folder-rename-624").send_keys :return

并且——如果有关联的提交按钮——尝试使用它而不是send_keys :return.

编辑:不幸的是,我无法重现消失的文本问题。但我正在添加这个片段,它应该处理递增的 id 属性:

tfs = b.text_fields
b.text_field(:id => "#{tfs.last.id}").set "foo"
b.text_field(:id => "#{tfs.last.id}").send_keys :return
于 2013-07-03T23:52:53.873 回答
0

事实证明,因为我已经多次运行测试,每次创建一个新文件夹时,我试图重命名的文件夹都被推离了屏幕。这就是导致错误的原因。

于 2013-07-09T23:29:44.747 回答