我需要你的帮助。我只想在Firefox上继续使用我的Selenium IDE脚本,即使没有找到错误或元素。我正在使用HTML格式的脚本。Selenium IDE:如何在元素上找不到或出错的脚本
回答
Selenium IDE插件更多用于录制(即向您显示操作背后的代码);它确实允许一些播放,但这是相当有限的,我不确定它可以让你处理错误。现在,如果你愿意使用实际的编程,那么你可以轻松处理错误。例如,在Python中,你可以使用这样的事情:
try:
driver.find_element_by_id("userid").click()
except NoSuchElementException:
# do something else (close page, give you a warning, etc)
没有真正意见的IDE – Dee
如果你使用的所有verify
相关的命令,则脚本不停止,如果元素没有被seleniun IDE找到,但如果你使用assert
相关命令,然后你的脚本停止,如果该元素不被硒IDE发现
如果有使用verifytext
命令然后运行该脚本来创建自己的脚本,看看你的脚本将不会停止,如果没有显示
@Rommer Dela Cruz,让我知道你的答案是否有帮助? –
实际上,如果元素不存在,verifyVisible将停止脚本,您必须使用verifyElementPresent – Dee
元素你必须做一个明确的检查如果在n中使用该元素之前存在元素ext命令(这可能会导致错误并中断脚本的执行)。用户扩展名“sideflow”启用代码内的条件跳转。
这里是sideflow扩展的主页:https://github.com/darrenderidder/sideflow
随着sideflow扩展你可以使用这样的代码:
storeElementPresent id=btnRecSearch isPresent
gotoIf ${isPresent} == false End
click id=btnRecSearch
....
label End
verifyElementPresent足够并且无需selblocks或类似的工具(gotoIF)插件 – Dee
- 公开赛在Mozilla浏览器中和硒IDE的页面。
- 右键单击文本并选择
waitForElementPresent
选项。 - 该命令被添加到录制的脚本中。
- 一旦元素被验证并且呈现,下一个命令可以是点击或者按照用户需要键入并且目标将总是元素ID。
您还可以使用实现“catch”方法的插件Selblocks来捕获错误并继续执行脚本。 try/catch/finally blocks 尝试可以在抛出错误时提供特殊处理,并且可以保证执行例如“清理”逻辑。
catch块指定如果在try块中抛出错误该怎么做。也就是说,如果try块中的任何语句或者try块内调用的函数或子函数都会引发错误,则控制权将跳转到匹配的catch块,并清除错误。如果在try块中没有引发错误,则跳过catch块。 Catch通过匹配其错误消息(指定为“子字符串”)或/正则表达式/来截取给定的错误。提供没有规范将捕获所有错误。
finally块在try和catch块之后执行。无论是否抛出错误,它总是执行。即使try或catch块通过“流程更改”命令结束,它也会执行:continue,break,return或exitTest命令。
尝试块可以嵌套。如果内部尝试没有发现错误,则输入包含的try/catch。所有嵌套的finally块的内容都保证执行,最内层到最外层 - 即使出现错误,也是如此。
catch和finally都是可选的,但如果两者都没有提供,那么try就没有效果。
可以在try和endTry中指定一个可选的标识符,它将被验证以进行适当的配对。试试
例/捕获/终于 尝试|外 尝试|内 掷| “blamo” getEval |警报( “该警报将不会执行”) 终于 getEval |警报( “1”) ENDTRY |内 抓|/blamo/ getEval |警报( “第二”) ENDTRY |外 你可以在这里阅读更多http://refactoror.wikia.com/wiki/Selblocks_Reference
这里是我解决了这个问题,例如,用SELECT
命令:
我创建了像一个正常select
但如果它无法找到元素
1)创建文件“用户extensions.js”用下面的代码不停止测试trySelect
自定义命令
Selenium.prototype.doTrySelect = function(locator,target) {
try {
return Selenium.prototype.doSelect.call(this,locator,target);
} catch(err) { return null; }
};
2)在硒IDE =>选项=>选项=>一般:添加 '用户extensions.js' 文件中的第三输入端,如下面
3)重新启动SEL烯鎓盐IDE
4)如使用(像一个正常的SELECT)
trySelect | //select | label=regexpi:.*Hey.*
你可以做这可能会失败,就像click
例如其他命令一样。
- 1. Selenium IDE找不到元素
- 2. Selenium IDE 1.5.0“元素...找不到”错误
- 3. Selenium IDE脚本找不到第二个选择元素
- 4. 错误在Selenium IDE上找不到元素ID
- 5. Selenium WebDriver无法找到Selenium IDE可以找到的元素
- 6. Selenium IDE - [错误]元素css = button.ng-binding.active找不到
- 7. Selenium Webdriver在IE8上找不到元素
- 8. 如何在selenium ide中使用元素文本查找xpath以使用元素?
- 9. Selenium IDE [错误]元素id = cmp_admin未找到
- 10. Selenium IDE间歇性错误 - 元素css = a.signout未找到
- 11. Selenium IDE,[错误]元素名称....未找到
- 12. 无法通过Selenium IDE在iFrame中找到任何html元素
- 13. WWW :: Selenium'找不到元素'
- 14. 找不到selenium webdriver元素
- 15. Selenium IDE,元素找不到,无论目标enetred
- 16. selenium-IDE-2.9.0 - [error]元素css = li.xspPickerItem.xspPickerItemHover找不到
- 17. 在Selenium中找不到元素链接
- 18. Selenium WebDriver在页面上找不到任何元素
- 19. 在找到元素并执行元素上的操作后找到元素找不到元素
- 20. Selenium webdriver python通过xpath找到元素 - 找不到元素
- 21. 如何找到元素[For Selenium]
- 22. Selenium RC Automation“元素未找到错误”
- 23. ExpatError:找不到元素 - Python脚本
- 24. Selenium找不到这样的元素
- 25. Selenium - 找不到xpath的元素
- 26. Selenium找不到id和xpath的元素
- 27. 如何在Selenium RC中运行Selenium IDE脚本?
- 28. 如何使用PHPUnit在Selenium RC中运行Selenium IDE脚本?
- 29. 在Selenium中查找dymanic元素:“元素不可见”错误
- 30. 在Selenium IDE中验证输入文本元素不为空
如果你在这一点上,我会建议导出到代码用于硒-webdriver,并开始捕捉异常,如Thiago的回答中所建议的。 – grumpasaurus