8

我需要你的帮助。我只想在 Firefox 上继续我的 Selenium IDE 脚本,即使没有找到错误或元素。我正在使用 HTML 格式的脚本。

4

7 回答 7

11

在下一个命令中使用该元素之前,您必须明确检查该元素是否存在(这可能会导致错误并中断脚本的执行)。用户扩展“sideflow”在您的代码中启用条件跳转。

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

使用 sideflow 扩展,您可以使用如下代码:

storeElementPresent id=btnRecSearch isPresent
gotoIf  ${isPresent} == false   End
click   id=btnRecSearch 
....
label   End
于 2013-08-30T13:42:01.120 回答
5

此示例适用于可在 Firefox 和 Chrome 上运行的新 Selenium IDE 版本 3。基本前提:

1) 存储 xpath 计数——这将保存与变量匹配的元素的计数

store xpath count | xpath=//body[@id='error-page'] | error

2) if -- 在这种情况下测试计数大于 0

if | ${error} > 0

3)做一些神奇的事情

4) 结束

end

Selenium IDE 3 - 如果元素存在示例

这是我使用相同示例发布的一篇文章:http: //lance.bio/2018/12/21/selenium-ide-if-element-exists/

于 2018-12-21T19:01:44.237 回答
2

如果您使用所有verify相关命令,则如果 seleniun IDE 未找到元素,则脚本不会停止,但如果您使用assert相关命令,则如果 selenium ide 未找到该元素,则脚本将停止

如果必须使用verifytext命令创建脚本,则运行该脚本并查看如果未显示元素,您的脚本将不会停止

于 2013-08-24T16:37:55.923 回答
1

您还可以使用实现“catch”方法的插件 Selblocks 来捕获错误并继续执行脚本。try/catch/finally 块 Try 可以在抛出错误时提供特殊处理,并且可以保证执行例如“清理”逻辑。

如果在 try 块中抛出错误,catch 块指定要做什么。也就是说,如果 try 块中的任何语句,或者从 try 块中调用的函数或子函数中的任何语句抛出错误,则控制跳转到匹配的 catch 块,并清除错误。如果在 try 块中没有抛出错误,则跳过 catch 块。Catch 通过匹配指定为“子字符串”或/正则表达式/的错误消息来拦截给定的错误。不提供规范将捕获所有错误。

finally 块在 try 和 catch 块之后执行。无论是否抛出或捕获错误,它总是执行。即使 try 或 catch 块通过“流更改”命令结束,它也会执行:继续、中断、返回或 exitTest 命令。

Try 块可以嵌套。如果内部 try 没有捕获错误,则输入封闭的 try/catch。所有嵌套的 finally 块的内容都保证执行,从最里面到最外面 - 同样,即使在此过程中发生错误。

catch 和 finally 都是可选的,但如果两者都没有提供,那么 try 根本就没有效果。

可以在 try 和 endTry 上指定一个可选标识符,该标识符将被验证是否正确配对。

try/catch/finally 示例 try|outer try|inner throw|"blamo" getEval|alert("this alert will NOT get executed") finally getEval|alert("1st") endTry|inner catch|/blamo/ getEval| alert("2nd") endTry|outer 你可以在这里阅读更多内容http://refactoror.wikia.com/wiki/Selblocks_Reference

于 2016-06-28T11:23:50.927 回答
0

Selenium IDE 插件更多地用于记录(即,向您展示动作背后的代码);它确实允许一些播放,但这非常有限,我不确定它是否可以让您处理错误。现在,如果您愿意使用实际编程,那么您可以轻松处理错误。例如,在 Python 中,您可以使用如下内容:

try:
    driver.find_element_by_id("userid").click()
except NoSuchElementException:
    # do something else (close page, give you a warning, etc)
于 2013-08-21T05:40:35.383 回答
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”文件,如下所示 selenium 选项界面

3) 重启 Selenium IDE

4) 使用示例(如普通的 SELECT)

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

您可以对其他可能失败的命令执行相同的操作,click例如。

于 2017-04-06T08:50:13.887 回答
-1
  1. 在 Mozilla 浏览器和 Selenium IDE 中打开一个页面。
  2. 右键单击文本并选择waitForElementPresent选项。
  3. 该命令被添加到录制的脚本中。
  4. 一旦元素被验证并呈现,下一个命令可以是单击或根据用户需要键入,并且目标将始终是元素 ID。
于 2014-07-09T09:35:58.597 回答