这是一个新手问题,但是......有没有办法让Selenium IDE中的操作可选?我将提供一个用例。
在我正在测试的应用程序中,用户看到“嘿,你在每个会话开始时通过登录”类型模式窗口同意ToS。他们必须单击“确定”继续,直到下一个会话才会再次看到窗口。
根据我到目前为止看到的情况,我需要每天为第一次测试提供一个测试套件,并为所有其他测试套件提供第二个测试套件。第二个套件完全相同,只是它没有“点击可以关闭初始模态窗口”步骤。或者,我只记得我每天第一次测试都会失败,而且我必须再次运行测试。
这两种“解决方案”似乎都不必要地尴尬。我可以让click
命令可选吗?
答案 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的所有内容。
答案 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法律按钮,你就到这儿了。)