【问题标题】:Selenium IDE step passes but does not enter text into text boxSelenium IDE 步骤通过但未在文本框中输入文本
【发布时间】:2018-01-17 22:12:02
【问题描述】:

我正在尝试让 IDE 运行填写用户名和密码字段的测试。在我们最近实施 SSO 之前,该测试一直有效。现在即使步骤通过了,第一个密码框也不会填写。

元素 id="password"

截图

Password field is skipped

All the steps say they were successfully run

我尝试将 Command 更改为 Focus、ClickAt、SendKeys、Type 和 FireEvent,但我尝试的都没有。我环顾四周,并没有看到任何类似的问题。有人遇到过这样的问题吗?我被难住了。

Gif of password field behavior

【问题讨论】:

  • 在填满id="email"element id="password" 之后,你能不能试着停下来。 IMO,emailpassword 通过 JS 在 DOM 中呈现,您必须等待完成。
  • 更多信息 - 密码框是有阴影的,直到我在其中单击,然后它变成白色并显示光标。我猜在点击它之前测试没有看到这个字段处于活动状态?第二个密码框不这样做。添加了一个 gif 来显示这一点。 “密码字段行为的 Gif”

标签: selenium selenium-ide


【解决方案1】:

Password 字段未填充的原因可能有多种,如下所示:

  • 当您在 密码 之前提供 电子邮件地址 时,JavaScript 可能会验证 Email Address(一旦填写up / onfocusout 事件)如果相同的Email Address 已经存在于Database 中。在这种情况下,在 JavaScript/AJAX Call 完成之前,Password 字段将无法交互
  • Password 字段似乎有一些标准,包括一些 Uppercase Letter/Number 等。所以,如果你调用 sendkeys()字符序列 不符合上述标准的 JavaScript 验证 字符序列 会完全擦除/删除 字符序列

解决办法:

您需要将Explicit WaitWebDriverWait 用于Password 字段为clickableExpectedConditions 类为elementToBeClickable,然后调用sendkeys() Character Sequence 满足Password 字段旁边提到的标准。

【讨论】:

    【解决方案2】:

    可能是密码字段附加了一些事件。它也可能是浏览器。根据我的经验,Firefox 与 Selenium 配合得更好。

    我会检查输入字段,看看是否有任何事件或函数阻止您输入文本。如果有,使用execute script Selenium IDE命令运行一个可以移除它的JS脚本。

    【讨论】:

      猜你喜欢
      • 2015-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-09
      • 2021-10-11
      • 2016-09-27
      • 2013-08-11
      相关资源
      最近更新 更多