【问题标题】:Is there a way to make actions optional in Selenium IDE?有没有办法让 Selenium IDE 中的操作可选?
【发布时间】:2011-02-14 18:16:06
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: selenium selenium-ide


    【解决方案1】:

    使用以下代码创建一个名为 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; }   
    };
    

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      【解决方案3】:

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

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

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

      希望对您有所帮助。

      【讨论】:

      • 嗯,好主意。我会试试这个。我认为您不知道检查 cookie 设置的命令吗? +1 无论哪种方式。
      • 当你说“cookie设置”时,你是什么意思?要查看为页面设置的 cookie,您可以使用 getCookie
      • 刚刚有了另一个想法 - 您可以使用嵌入式 javascript 来进行检查。
      【解决方案4】:

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

      【讨论】:

        【解决方案5】:

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

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

        【讨论】:

          【解决方案6】:

          使用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 its 不是-您转到“结束”标签并跳过此命令) 4.如果没有cookie law按钮,你去这里:)

          【讨论】:

            猜你喜欢
            • 2021-01-03
            • 1970-01-01
            • 2018-10-20
            • 1970-01-01
            • 2015-09-12
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多