Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Selenium IDE中有没有一种方法可以使操作成为可选的?_Selenium_Selenium Ide - Fatal编程技术网

在Selenium IDE中有没有一种方法可以使操作成为可选的?

在Selenium IDE中有没有一种方法可以使操作成为可选的?,selenium,selenium-ide,Selenium,Selenium Ide,这是一个新手问题,但是。。。在Selenium IDE中有没有一种方法可以使操作成为可选的?我将提供一个用例 在我正在测试的应用程序中,用户在每次会话开始时都会看到一个“嘿,你通过登录同意ToS”类型的模式窗口。他们必须单击“确定”才能继续,直到下一次会话,他们才会再次看到该窗口 根据我到目前为止所看到的情况,我每天需要为第一次测试准备一个测试套件,为所有其他测试准备第二个测试套件。第二个套件完全相同,只是它没有“单击OK关闭初始模式窗口”步骤。或者,我可以只记住每天第一次运行的测试将失败,并且

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

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

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


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

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

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

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

希望这能有所帮助。

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


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

IDE的另一个非常有用的流控制附加组件是


它将使您能够使用:
if/else/for/foreach/while
,甚至可以从XML文件中读取变量。

正如aj.esler指出的那样,Selenium ID流控制是一个很好的解决方案,对我来说很有效。 这是你的电话号码 我使用的是gotoif,下面是一个关于如何使用它的示例。当skip值为1时,它将转到label=jump行,并且不会执行从gotoif like到label=jump的所有操作。
使用下面的代码创建一个名为user-extensions.js的javascript文件。然后进入Selenium IDE选项对话框,选择您的user-extensions.js文件,重新启动Selenium,您将能够选择TryClick,该选项的工作原理与单击相同,但会抑制任何错误

Selenium.prototype.doTryClick = function(locator) {
    try {
        return Selenium.prototype.doClick.call(this,locator);
    } catch(err) { return null; }   
};
使用插件。 这样做:

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\u法则” 2.如果cookie_定律不为“true”-转到标签“end”-以其他方式转到下一步 3.单击cookie接受按钮(仅当它
s
在此处输入代码
present时,因为它不存在-您转到“end”标签并跳过此命令)

4.如果没有cookie law按钮,你可以到这里:)

Hm,好主意。我试试看。我想你不知道检查cookie设置的命令吧+1不管怎样。当你说“cookie设置”时,你是什么意思?要查看页面的Cookie集,您可以使用Just Have Other Think—您可以使用嵌入式javascript进行检查。if和endIf实际上指的是SelBlocks扩展提供的命令: