gpt4 book ai didi

ruby - 在 Peoplesoft 应用程序 : each text field reloads the page 上使用 Watir

转载 作者:太空宇宙 更新时间:2023-11-03 18:00:54 24 4
gpt4 key购买 nike

我正在使用 Watir 1.6.7。

我正在使用 Watir 和 Cucumber 为 PeopleSoft 应用程序开发一些回归测试。我在应用程序中遇到了一些表单问题。

首先,当在 text_field 中输入值时,当用户在 text_field 外部单击时页面会刷新。等待下一个 text_field 元素存在是有问题的,因为它可能会在页面重新加载之前或页面按预期重新加载之后找到该元素。增加等待时间从来都不是一个好的解决方案,即使它“有效”。

第二个问题是,直到用户在当前字段外单击才会触发页面刷新。在这种情况下,当脚本试图访问下一个要填充的 text_field 时,就会发生这种情况。这里的一种解决方案是发送 或 击键,但我能感觉到脚本随着这样的每次添加而变得更加脆弱。

是否有任何其他方法不那么脆弱,并且不需要在每个 text_field 操作之间使用 2-3 个额外命令?

逐个播放看起来像:

  • 浏览器导航到包含表单的页面。
  • 浏览器填写第一个表单字段。 (修复:发送击键导致页面刷新,wait_until 第二个字段再次可见)
  • 浏览器选择要填写的第二个表单域。 (同样,击键和 wait_until)
  • 页面刷新,脚本失败。 (已解决)
  • 浏览器选择第三个表单域...

最佳答案

应用程序开始超过 5 秒的休眠持续时间,我不想再增加等待时间。我想看看如果我使用“element.value =”而不是使用“element.set”逐字符填充文本字段会更快。

此更改完全解决了所有并发症。输入文本时页面不再刷新,也不再需要 send_keys 语句来使用 TAB 或 ENTER 移动到另一个字段。即使字段之间没有刷新或状态保存,表单也会存储所有输入的数据。

以前的方法:

def enter_text(element, text)
element.set text
@browser.send_keys("+{TAB}")
sleep 5
Watir:Wait.until { element.exists? }
end

新方法:

def enter_text(element, text)
element.value = text
end

关于ruby - 在 Peoplesoft 应用程序 : each text field reloads the page 上使用 Watir,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4938062/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com