4

这是一个新手问题,但是......有没有办法在 Selenium IDE 中使操作成为可选?我将提供一个用例。

在我正在测试的应用程序中,用户会在每个会话开始时看到“嘿,您通过登录同意 ToS”类型的模式窗口。他们必须单击“确定”才能继续,并且在下一次会话之前他们不会再次看到该窗口。

根据我目前所见,我需要为每天的第一个测试提供一个测试套件,并为所有其他测试提供第二个测试套件。第二个套件完全相同,只是它没有“单击确定以关闭初始模式窗口”步骤。或者,我可以只记得我每天第一次运行测试会失败,我必须再次运行测试。

这两种“解决方案”似乎都不必要地尴尬。我可以将click命令设为可选吗?

4

6 回答 6

4

使用以下代码创建一个名为 user-extensions.js 的 javascript 文件。然后进入 Selenium IDE 选项对话框并选择您的 user-extensions.js 文件,重新启动 Selenium,您将能够选择 TryClick,它的工作方式与 Click 相同,但会抑制任何错误。

Selenium.prototype.doTryClick = function(locator) {
    try {
        return Selenium.prototype.doClick.call(this,locator);
    } catch(err) { return null; }   
};
于 2013-09-09T10:23:02.003 回答
3

也许迟到了,但对于未来的搜索者。

您可以在 IDE 中使用ifendIf语句。

于 2012-10-30T10:57:38.527 回答
1

如果您使用 cookie 来决定是否隐藏 ToS 对话框,您可以检查是否设置了某个 cookie,如果是,请跳过单击。

我没有太多使用 selenium IDE,但我认为如果您使用编程语言,进行检查会容易得多。我不确定如何在 HTML 测试中做到这一点。

如果您使用的是 HTML,您可以查看Selenium IDE Flow Control,看看它是否可以满足您的需求。我自己没有使用过这个,但如果看起来它支持 if 语句。您可以使用 verifyCookie 检查 cookie 是否存在。

希望有帮助。

于 2011-02-14T22:37:05.637 回答
1

正如 aj.esler 指出的那样,Selenium ID 流控制是一个很好的解决方案,对我有用。这是 我使用gotoif的Firefox 插件,这是一个关于如何使用它的示例。当 skip 值为 1 时,它将转到 label=jump 行,并且不会执行从 gotoif like 到 label=jump 的所有内容。 在此处输入图像描述

于 2013-07-25T19:39:06.123 回答
0

另一个非常有用的 IDE 流控制插件是SelBlocks

它将使您能够使用:if/else/for/foreach/while甚至一种从 XML 文件中读取变量的方法。

于 2013-02-07T19:26:44.217 回答
0

使用http://wiki.openqa.org/display/SEL/flowControl插件。做这样的事情:

1.storeElementPresent | //button[@name="cookie_law_accept"] | cookie_law
2.goToIf | storedVars['cookie_law']!=true | end
3.click | //button[@name="cookie_law_accept"]
4.label | end

说明: 1.如果元素存在,它将被存储为值为“true”的“cookie_law” 2.如果 cookie_law 不是“true” - 转到标签“end” - 其他方式转到下一步 3.点击 cookie接受按钮(仅当它s在此处输入代码时present because it it- 您转到“结束”标签并跳过此命令) 4.如果没有 cookie 法律按钮,您转到此处 :)

于 2015-07-30T09:39:08.867 回答