2013-08-21 65 views

回答

0

Selenium IDE插件更多用于录制(即向您显示操作背后的代码);它确实允许一些播放,但这是相当有限的,我不确定它可以让你处理错误。现在,如果你愿意使用实际的编程,那么你可以轻松处理错误。例如,在Python中,你可以使用这样的事情:

try: 
    driver.find_element_by_id("userid").click() 
except NoSuchElementException: 
    # do something else (close page, give you a warning, etc) 
+0

没有真正意见的IDE – Dee

2

如果你使用的所有verify相关的命令,则脚本不停止,如果元素没有被seleniun IDE找到,但如果你使用assert相关命令,然后你的脚本停止,如果该元素不被硒IDE发现

如果有使用verifytext命令然后运行该脚本来创建自己的脚本,看看你的脚本将不会停止,如果没有显示

+0

@Rommer Dela Cruz,让我知道你的答案是否有帮助? –

+0

实际上,如果元素不存在,verifyVisible将停止脚本,您必须使用verifyElementPresent – Dee

10

元素你必须做一个明确的检查如果在n中使用该元素之前存在元素ext命令(这可能会导致错误并中断脚本的执行)。用户扩展名“sideflow”启用代码内的条件跳转。

这里是sideflow扩展的主页:https://github.com/darrenderidder/sideflow

随着sideflow扩展你可以使用这样的代码:

storeElementPresent id=btnRecSearch isPresent 
gotoIf ${isPresent} == false End 
click id=btnRecSearch 
.... 
label End 
+0

verifyElementPresent足够并且无需selblocks或类似的工具(gotoIF)插件 – Dee

-1
  1. 公开赛在Mozilla浏览器中和硒IDE的页面。
  2. 右键单击文本并选择waitForElementPresent选项。
  3. 该命令被添加到录制的脚本中。
  4. 一旦元素被验证并且呈现,下一个命令可以是点击或者按照用户需要键入并且目标将总是元素ID。
1

您还可以使用实现“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

0

这里是我解决了这个问题,例如,用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' 文件中的第三输入端,如下面 selenium option interface

3)重新启动SEL烯鎓盐IDE

4)如使用(像一个正常的SELECT)

trySelect | //select | label=regexpi:.*Hey.* 

你可以做这可能会失败,就像click例如其他命令一样。

相关问题