【问题标题】:Selenium RC and input control eventsSelenium RC 和输入控制事件
【发布时间】:2010-12-02 22:35:25
【问题描述】:

我们在 MVC 中有 Web UI 项目,对于自动化测试,我们使用 Selenium,它是一个很棒的工具。但是我在使用 Selenium 引发事件时遇到了一些问题。

场景: 我有一个文本框,它需要 +ve 值并在输入任何 -ve 值时弹出错误(javascript),我们从该文本框点击选项卡或在页面上的任意位置单击外部。

它在正常用户与网站的交互时工作正常,但是在使用 selenium 时我无法实现这种行为。我在 Selenium.Type('elementId',-ve value) 中添加了一些文本,事件不会被触发并且错误不会冒泡。

我尝试使用 FireEvent("textboxId","blur") 但它不起作用。 唯一的解决方法是关注文本框,添加一些值,使用 FireEvent("textbox","blur") 然后关注其他文本框。

有没有人想办法解决这个问题?

【问题讨论】:

    标签: events selenium


    【解决方案1】:

    我可以通过调用

    来使用 Selenium RC 中的 Java 客户端
    • type("id=textboxid", "newValue");

    然后

    • fireEvent("id=textboxid", "blur");

    您是否得到任何关于“模糊”事件是否被触发的迹象?我想知道定位器是否无法正常工作以触发该事件。

    无论您需要采取什么小技巧来使其正常工作,为了避免对每个字段都这样做,如果使用 RC 客户端,您应该将 2-3 个调用包装在一个函数中,或者 register some user extensions 将其合二为一如果您使用的是 Selenium IDE,请执行此步骤。

    【讨论】:

      【解决方案2】:

      您的解决方法听起来不错。当您聚焦领域,然后更改内容,然后模糊(聚焦在其他领域)与用户所做的交互完全相同。

      另一种选择(我仍然更喜欢专注于其他领域的选择)是使用 getEval 来触发验证该领域的 javascript 函数。您可以查看本教程以了解如何执行此操作: http://www.theautomatedtester.co.uk/seleniumtraining/Selenium_JavaScript.htm

      【讨论】:

        【解决方案3】:

        “模糊”是一个很棒的发现!谢谢。

        我的问题有点不同。下面是我如何对未回发的(父)下拉列表使用“模糊”来填充第二个(子)下拉列表(例如州和县)。

        1. Selenium.Focus("id=drpdwnState");
        2. Selenium.Select("id=drpdwnState", "label=Michigan");
        3. Selenium.FireEvent("id=drpdwnState", "blur");
        4. Selenium.Focus("id=drpdwnCounty");
        5. Selenium.Select("id=drpdwnCounty", "label=Grand Traverse");

        希望这对某人有所帮助。 干杯!

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-07-15
          • 1970-01-01
          • 2012-06-13
          • 2011-04-28
          • 1970-01-01
          • 2016-07-10
          相关资源
          最近更新 更多