2010-01-02 54 views
2

任何想法,即使在焦点事件之后,我都可以触发模糊效果,这样它就不会发生“松散耦合”(动作逐个发送到硒服务器)。 让我解释一下:火灾模糊和焦点紧密耦合?

在Selenium RC中,通过fireEvent(定位器,“模糊”)和fireEvent(定位器,“焦点”)激发模糊和焦点。但是,在模糊事件发送给浏览器之后,焦点事件不会直接跟随javascript命令堆栈中的blur事件。这是一个问题,在以下情况下:检测一组小部件的模糊,如一组文本框。

我该做什么:所有文本框共享相同的侦听器,并且当发生模糊时,我简单地运行一个附加命令来检查焦点事件是否被其中一个文本框捕获,如果是,则忽略模糊。我在JavaScript中运行的这个附加命令在所有等待命令运行后自动执行,在这种情况下,焦点命令是这些等待命令之一。

返回Selenium RC:在Selenium服务器触发模糊事件后,它会等待下一个命令,在这种情况下是焦点事件并将触发它。但是,正如您所了解的那样,同时,addiontal命令已被触发,并且未检测到新的焦点事件。因此,检测并处理群组模糊,但是在这种情况下,模糊处理不正确,因为在模糊之后不会直接触发焦点,例如浏览器会执行此操作....

我希望你理解我的问题,因为这有点难以解释。 任何想法如何解决这个问题?所以我可以测试正确的行为? (没有我的验证发生太早,因为一组 - 模糊未被正确捕获)

我想要解决这个问题的方法:发送一段JavaScript的Selenium服务器将被评估,并将后两个事件触发彼此。还是不??而你我该怎么做?

回答

2

我相信你正在寻找:

selenium.getEval( “[我的JavaScript这里]”);

您可以发送一个您选择的JavaScript代码片段以通过浏览器进行评估,这应该使您能够将焦点和模糊链接到一个命令中。

+0

谢谢,很久以前我解决了这个问题。如果我没有记错的话,我按照你的建议做了同样的事。 – edbras 2011-04-12 08:00:37