【问题标题】:Selenium IDE can't find an elementSelenium IDE 找不到元素
【发布时间】:2015-04-20 20:10:00
【问题描述】:

我正在尝试在 Selenium IDE 中运行记录的测试用例。问题是当我尝试执行整个测试用例时,Selenium 会阻止它在页面上找不到元素。问题是我可以执行测试用例的单个步骤。我认为 Selenium 会在加载新页面之前尝试查找元素,所以我使用了 clickAndWait、pause 和 waitForElementPresent 命令 - 没有任何效果,Selenium 停止了测试用例。

调试日志

•  [info] Executing: |`clickAndWait` | css=i.fa.fa-arrow-left | | 
•  [debug] Command found, going to execute clickAndWait 
•  [debug] modifyWindow seleniumMarker1429084950752:selenium1429084951105 
•  [debug] _getFrameElement: frameElement=null 
•  [debug] modifySeparateTestWindowToDetectPageLoads: already polling this window: selenium1429084951105 
•  [debug] getCurrentWindow newPageLoaded = false 
•  [error] Element css=i.fa.fa-arrow-left not found 
•  [debug] commandError 
•  [debug] testComplete: failed=true 
•  [info] Test case failed

我将非常感谢任何帮助和建议。

【问题讨论】:

  • 在此处需要更多信息。查看更多脚本会有所帮助。在 css=i.fa.fa-arrow-left 上执行 clickAndWait 之前会发生什么?您是否在 clickAndWait 之前检查过该元素是否存在。这似乎就是这里所暗示的。
  • 本次测试是否涉及多个窗口?

标签: selenium-ide


【解决方案1】:

在某些情况下,'ClickAndWait' 不可靠,不会等待命令完成,然后再转到下一个命令。在这种情况下,另一种方法是使用“Click”,然后使用“waitForPageToLoad”。

示例...

原创

<tr>
    <td>clickAndWait</td>
    <td>//input[@type='submit']</td>
    <td></td>
</tr>

<tr>
    <td>click</td>
    <td>//input[@type='submit']</td>
    <td></td>
</tr>
<tr>
    <td>waitForPageToLoad</td>
    <td>10000</td>
    <td></td>
</tr>

如果这没有帮助,请发布您的源代码,我会看看是否还有其他建议。

【讨论】:

  • 那是多余的。 ClickAndWait 确实做到了。但是,可以在 DOM 就绪时触发 AndWait,如果仍在加载 javascript 和/或 ajax,则可能不会加载所有元素。
  • 嗨@DMart。我也看到 AndWait 在其他一些情况下失败 - 特别是在域名设置为转发到 IP 而不是绑定到 IP 的情况下。在这种情况下,页面上没有 JavaScript 或 AJAX,我的脚本没有等待。但是,当我将操作分为 Click 和 WaitForPageToLoad 时,它确实成功地等待。在这种特定情况下,它并不是多余的。
  • 由 document['readyState'] 决定,具体是 !!document['readyState']。 github.com/SeleniumHQ/selenium/blob/… 更多关于就绪状态:w3schools.com/jsref/prop_doc_readystate.asp
【解决方案2】:

通过结合使用 waitForElementPresent、verifyElementPresent 和为 IDE 安装 Implicit Wait 插件,我发现这个问题(元素尚不存在)取得了很大成功。 (https://addons.mozilla.org/en-US/firefox/addon/selenium-ide-implicit-wait/)。我现在几乎完全能够从我的测试中删除所有“暂停”命令。

克伦达图

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-17
    • 1970-01-01
    • 1970-01-01
    • 2019-01-02
    • 2021-03-14
    相关资源
    最近更新 更多