我正在尝试在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
我将非常感谢任何帮助和建议。
答案 0 :(得分:1)
在某些情况下,ClickAndWait'是不可靠的,并且在转移到下一个命令之前不会等待命令完成。在这种情况下,另一种方法是使用' Click'而是使用' waitForPageToLoad'来跟进。
示例...
ORIGINAL
<tr>
<td>clickAndWait</td>
<td>//input[@type='submit']</td>
<td></td>
</tr>
NEW
<tr>
<td>click</td>
<td>//input[@type='submit']</td>
<td></td>
</tr>
<tr>
<td>waitForPageToLoad</td>
<td>10000</td>
<td></td>
</tr>
如果这没有帮助,请发布您的源代码,我会看看是否还有其他建议。
答案 1 :(得分:0)
通过结合使用waitForElementPresent,verifyElementPresent和安装IDE的Implicit Wait插件,我发现此问题(元素尚未出现)取得了很大成功。 (https://addons.mozilla.org/en-US/firefox/addon/selenium-ide-implicit-wait/)。我现在几乎完全能够从我的测试中删除所有“暂停”命令。
Klendathu