如何在验证元素存在时重新开始测试

Posted

技术标签:

【中文标题】如何在验证元素存在时重新开始测试【英文标题】:How to restart test on verify element present 【发布时间】:2021-11-26 06:39:36 【问题描述】:

我是自动化新手,目前正尝试在 Selenium IDE 中做某事,但似乎无法找到有关如何正确操作的信息。

所以我在网页上运行测试,点击等,如果页面上有某个 id 元素,我想重新开始测试,如果没有,则完成剩余的代码。

另外,这也可以通过验证元素不存在来完成,但我相信它会通过搜索大部分时间不在页面上的内容来减慢测试速度。

所以预期的步骤:

    运行测试; 命令 1、2、3...正在运行 在命令 19 之前,检查元素 id=btnSalir 是否存在于页面上 如果为 true,则测试重新启动并继续循环,直到页面上不存在 id=btnSalir 如果为 false,则测试运行剩余代码或特定代码,以较容易者为准。

作为替代步骤:

    运行测试; 命令 1、2、3...正在运行 在命令 19 之前,检查元素 id=btnSiguiente 是否存在于页面上 如果为 false,则测试重新启动并继续循环,直到 id=btnSiguiente 出现在页面上 如果为真,则测试运行剩余代码或特定代码,以较容易者为准。

还有没有办法减少这些验证元素存在或不存在的时间?

我试过if,do,repeat if,但还是不行,也许有经验的大神可以指点一下?

Selenium IDE step screenshot

【问题讨论】:

【参考方案1】:

这样的事情可能会有所帮助:

如果|selenium.isElementPresent("id=btnSalir") 回声|做一些事情 其他 回声|做一些其他的事情 结束

IF 语句中的代码 sn-p 使用内部 Selenium 函数来检测元素是否存在。 true 或 false 结果将导致执行 if-else-end 语句的正确分支。在 IDE 中的测试中使用这样的结构将让您在元素存在时做一件事,如果元素不存在则做另一件事。 注意:如果您在 Selenium IDE 中运行测试,这可以工作,但如果您在 selenium Side Runner 中运行相同的测试,则不会工作(“selenium”对象未在 Side Runner 中定义)。

【讨论】:

您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。

以上是关于如何在验证元素存在时重新开始测试的主要内容,如果未能解决你的问题,请参考以下文章

在 Postgres 中,如何在更改表后重新验证(“类型检查”)函数和过程?

如何使用selenium Webdriver验证页面中是否存在重复文本

散列更改时分离和重新附加元素

代码重构帮助 - 如何重新组织验证

如何从 Selenium IDE 中的“链接”元素获取 url

如何在 Laravel 中手动重新发送电子邮件验证?