有没有办法在Selenium IDE中使操作可选?

时间:2011-02-14 18:16:07

标签: selenium selenium-ide

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

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

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

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

6 个答案:

答案 0 :(得分:3)

或许已经过期了,但对于未来的搜索者来说。

您可以在IDE中使用 if endIf 语句。

答案 1 :(得分:3)

使用以下代码创建名为user-extensions.js的javascript文件。然后进入Selenium IDE Options对话框并选择你的user-extensions.js文件,重新启动Selenium,你就可以选择TryClick,它与Click相同,但可以抑制任何错误。

Selenium.prototype.doTryClick = function(locator) {
    try {
        return Selenium.prototype.doClick.call(this,locator);
    } catch(err) { return null; }   
};

答案 2 :(得分:1)

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

我没有太多使用selenium IDE,但我认为如果你使用的是编程语言,那么检查会更容易。我不知道如何在HTML测试中做到这一点。

如果您使用的是HTML,则可以查看Selenium IDE Flow Control并查看是否可以执行您需要的操作。我自己没有使用它,但如果看起来它支持if语句。您可以使用verifyCookie来检查cookie是否存在。

希望有所帮助。

答案 3 :(得分:1)

正如aj.esler指出的那样,Selenium ID Flow控件是一个很好的解决方案,对我有用。 这是Firefox add on 我使用 gotoif ,这是一个关于如何使用它的示例。当跳过值为1时,它将转到label =跳线,并且不会执行从gotoif到label = jump的所有内容。 enter image description here

答案 4 :(得分:0)

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

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

答案 5 :(得分: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.如果元素存在,它将被存储为" cookie_law"有价值"真" 2.如果cookie_law不是" true" - 去标签"结束" - 其他方式转到下一步 3.单击以接受cookie接受按钮(仅当s在此处输入代码时present because it it不是 - 您转到"结束"标签并跳过此命令) 如果没有cookie法律按钮,你就到这儿了。)