2009-10-01 93 views
5

我们在MVC中有Web UI项目和自动化测试,我们使用Selenium,这是一个非常棒的工具。但是我在与Selenium举办活动时遇到了一些问题。Selenium RC和输入控制事件

场景: 我有一个文本框,当输入任何-ve值时,我们希望+ ve值和冒泡错误(javascript),我们从该文本框中打开标签或在页面的任何位置点击。

它与正常的用户与网站的交互正常工作,但使用硒时,我无法实现此行为。我将一些文本与Selenium.Type('elementId', - ve值)事件不会被解雇,并且错误不会冒泡。

我尝试使用FireEvent(“textboxId”,“模糊”),但它不工作。 唯一的解决方法是将焦点放在文本框上,添加一些值,使用FireEvent(“textbox”,“blur”),然后将焦点放在其他某个文本框上。

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

回答

1

您的解决方法听起来不是一个糟糕的选项。当你关注领域,然后改变内容,然后你模糊(聚焦在其他领域)是与用户完全相同的交互。

另一种选择(我仍然更喜欢专注于其他领域)替代方法是使用getEval触发验证字段的JavaScript函数。您可以检查该怎么做这个教程: http://www.theautomatedtester.co.uk/seleniumtraining/Selenium_JavaScript.htm

4

我能够通过调用

  • 类型(“ID = textboxid”获得与硒RC Java客户端这方面的工作,“NEWVALUE” );

然后

  • fireEvent( “ID = textboxid”, “模糊”);

你有没有得到任何关于“blur”事件是否被解雇的迹象?我想知道这个定位者是不是可以正确地开展活动。不管你使用什么小技巧来让它工作,为了避免在每一个领域都做到这一点,你应该用一个RC客户端将你的2-3个调用包装在一个函数中,或者在一个步骤中使用register some user extensions如果您使用的是Selenium IDE。

0

“模糊”是一个伟大的发现!谢谢。

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

  1. Selenium.Focus(“id = drpdwnState”);
  2. Selenium.Select(“id = drpdwnState”,“label = Michigan”);
  3. Selenium.FireEvent(“id = drpdwnState”,“blur”);
  4. Selenium.Focus(“id = drpdwnCounty”);
  5. 硒。选择(“id = drpdwnCounty”,“label = Grand Traverse”);

希望这可以帮助别人。 干杯!