2011-02-14 154 views
3

这是一个新手问题,但是......有没有一种方法可以使动作在Selenium IDE中可选?我将提供一个用例。有没有一种方法可以使动作在Selenium IDE中可选?

在我测试的应用程序中,用户在每个会话开始时看到一个“嗨,您在登录时同意ToS”模式窗口。他们必须点击确定才能继续,直到下一次会话才会再次看到窗口。根据我目前看到的情况,我需要每天都有一个测试套件用于第一次测试,而其他所有测试套件都需要第二套测试套件。第二个套件完全相同,只是它没有“单击可以关闭初始模态窗口”步骤。另外,我可以记住,我每天第一次测试运行会失败,并且我必须再次运行测试。

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

回答

1

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

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

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

希望有所帮助。

+1

嗯,好主意。我会试试这个。我认为你不知道检查cookie设置的命令? +1方式。 – Pops 2011-02-15 22:02:27

+0

当你说“饼干设置”,你是什么意思?要查看为页面设置的Cookie,您可以使用[getCookie](http://release.seleniumhq.org/selenium-remote-control/0.9.0/doc/java/com/thoughtworks/selenium/Selenium.html# getCookie%28%29) – 2011-02-16 02:23:51

3

也许过期了,但对于未来的搜索者。

你可以使用IDE中的如果ENDIF语句。

0

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

它会给你使用的能力:if/else/for/foreach/while从XML文件中读取变量,甚至一种方式。

1

正如aj.esler指出的那样,Selenium ID流量控制对我来说是一个很好的解决方案。 这里是Firefox add on 我使用gotoif,这里是一个关于如何使用它的例子。当skip值为1时,它将进入label = jump行,不会执行从gotoif到label = jump的所有内容。 enter image description here

3

使用下面的代码创建一个名为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; } 
}; 
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不是“真” - 转到标签“结束” - 其他方式转到下一步 3.单击cookie接受按钮(只有当它s在这里输入代码present because it it s不 - 你去“结束”标签,你跳过这个命令) 4.你去这里,如果没有cookie法律按钮:)

相关问题