Selenium RC和输入控制事件

时间:2009-10-01 09:38:44

标签: events selenium

我们在MVC中有Web UI项目,对于自动化测试,我们使用的是Selenium,它是一个出色的工具。但是我在与Selenium一起举办活动时遇到了一些问题。

方案: 我有一个文本框,当输入任何-ve值时需要+ ve值并冒出错误(javascript),我们点击该文本框中的标签或点击页面上任何位置的外部。

它与网站的正常用户交互工作正常,但在使用selenium时,我无法实现此行为。我正在使用Selenium.Type('elementId', - ve value)放置一些文本,事件不会被触发,错误也不会冒出来。

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

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

3 个答案:

答案 0 :(得分:4)

通过调用

,我能够在Selenium RC中使用Java客户端
  • type(“id = textboxid”,“newValue”);

然后

  • fireEvent(“id = textboxid”,“blur”);

您是否有任何关于“模糊”事件是否被解雇的迹象?我想知道定位器是否可能不能正常发挥作用。

无论为了让它工作都需要拉动什么小技巧,为了避免在每个领域都这样做,你应该在使用RC客户端时将2-3个调用包装在函数中,或者register some user extensions来执行它如果您正在使用Selenium IDE,请一步完成。

答案 1 :(得分:1)

您的解决方法听起来不是一个糟糕的选择。当您对该字段进行聚焦时,然后更改内容然后您模糊(聚焦在其他字段中)就是用户完全相同的交互。

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

答案 2 :(得分:0)

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

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

  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”);
  6. 希望这有助于某人。 干杯!