【问题标题】:text_field.set not working in test script but works fine in irbtext_field.set 在测试脚本中不起作用,但在 irb 中工作正常
【发布时间】:2013-07-03 22:45:38
【问题描述】:

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

<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 秒的睡眠,但无济于事。两者有什么不同的工作方式吗?有什么建议可以解决这个问题吗?

【问题讨论】:

  • Watir::Exception::UnknownObjectException: 无法定位元素,使用 {:class=>"selected rename", :tag_name=>"li"}
  • 嗯。您应该编辑您的问题以包含重现问题的最少 HTML(连同错误消息)。可能有助于调试问题。

标签: ruby watir-webdriver testunit


【解决方案1】:

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

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

如果有关联的提交按钮,请尝试使用该按钮而不是 send_keys :return

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

tfs = b.text_fields
b.text_field(:id => "#{tfs.last.id}").set "foo"
b.text_field(:id => "#{tfs.last.id}").send_keys :return

【讨论】:

  • 每次创建新文件夹时,该数字都会增加。所以下次我运行测试时,id 标签将是“folder-rename-625”。不幸的是,没有提交按钮。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-11
    • 2019-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多