我需要你的帮助。我只想在Firefox上继续我的Selenium IDE脚本,即使找不到错误或元素。我正在使用HTML格式的脚本。
答案 0 :(得分:11)
在下一个命令中使用此元素之前,您必须明确检查元素是否存在(这可能会导致错误并中断脚本的执行)。用户扩展“sideflow”允许在代码中启用条件跳转。
以下是侧流扩展的主页:https://github.com/darrenderidder/sideflow
使用侧流扩展,您可以使用以下代码:
storeElementPresent id=btnRecSearch isPresent
gotoIf ${isPresent} == false End
click id=btnRecSearch
....
label End
答案 1 :(得分:2)
如果使用所有verify
相关命令,那么如果seleniun IDE找不到元素,则脚本不会停止,但如果使用assert
相关命令,那么如果找不到该元素,则脚本将停止通过selenium ide
如果必须使用verifytext
命令创建脚本,则运行该脚本,如果未显示元素,则查看脚本不会停止
答案 2 :(得分:1)
你也可以使用插件Selblocks来实现" catch"方法,以便捕获错误并继续脚本。 try / catch / finally块 尝试可以在抛出错误时提供特殊处理,并且可以保证执行例如"清理"逻辑。
catch块指定在try块中抛出错误时该怎么做。也就是说,如果try块中或try块内调用的函数或子函数中的任何语句抛出错误,则控制跳转到匹配的catch块,并清除错误。如果try块中没有抛出错误,则跳过catch块。 Catch通过匹配其错误消息来拦截给定错误,该错误消息被指定为" substring"或者作为/ regular expression /。不提供规范将捕获所有错误。
在try和catch块之后执行finally块。无论是否抛出或捕获错误,它总是执行。即使try或catch块通过" flow change"结束,它也会执行。命令:continue,break,return或exitTest命令。
尝试块可以嵌套。如果内部尝试没有捕获错误,则输入封闭的try / catch。所有嵌套的finally块的内容都保证执行,最里面到最外层 - 再次,即使错误发生在路上。
catch和finally都是可选的,但如果两者都没有提供,则try只是没有效果。
可以在try和endTry上指定可选的标识符,该标识符将被验证以进行正确的配对。
try / catch / finally示例 尝试|外 尝试|内 扔|" blamo" getEval | alert("此警报不会被执行") 最后 getEval |警报("第一&#34) ENDTRY |内 赶上| / blamo / getEval |警报("第二&#34) ENDTRY |外 您可以在此处阅读更多内容http://refactoror.wikia.com/wiki/Selblocks_Reference
答案 3 :(得分:1)
此示例适用于可在Firefox和Chrome上运行的新Selenium IDE版本3。基本前提:
1)存储xpath计数-这样可以保存与变量匹配的元素的计数
store xpath count | xpath=//body[@id='error-page'] | error
2)如果-在这种情况下测试计数大于0
if | ${error} > 0
3)做一些神奇的事情
4)结束
end
这是我使用相同示例发布的文章:http://lance.bio/2018/12/21/selenium-ide-if-element-exists/
答案 4 :(得分:0)
Selenium IDE插件更适合录制(即向您显示操作背后的代码);它确实允许一些播放,但这是非常有限的,我不确定它可以让你处理错误。现在,如果您愿意使用实际编程,那么您可以轻松处理错误。例如,在Python中你可以使用这样的东西:
try:
driver.find_element_by_id("userid").click()
except NoSuchElementException:
# do something else (close page, give you a warning, etc)
答案 5 :(得分:0)
以下是我解决问题的方法,例如SELECT
命令:
我创建了一个trySelect
自定义命令,其行为类似于普通select
但如果找不到该元素则不会停止测试
1)创建文件' user-extensions.js'使用以下代码
Selenium.prototype.doTrySelect = function(locator,target) {
try {
return Selenium.prototype.doSelect.call(this,locator,target);
} catch(err) { return null; }
};
2)在Selenium IDE =>中options => options => general:添加您的' user-extensions.js'文件在第3个输入中,如下所示
3)重启Selenium IDE
4)使用示例(如普通SELECT)
trySelect | //select | label=regexpi:.*Hey.*
您可以对其他可能失败的命令执行相同的操作,例如click
。
答案 6 :(得分:0)
我只想继续我的Selenium IDE脚本,即使没有发现错误或元素。
使用 Kantu Selenium IDE,现在超级简单:只需使用!errorignore:
Store | true | !errorignore
如果您想稍后在脚本中检查是否有错误并对此进行处理,则只需检查!statusOK的值:
If | ${!statusOK} == false |
echo | handle error here
endIF
答案 7 :(得分:-1)
waitForElementPresent
选项。