任何想法,即使在焦点事件之后我也可以触发模糊,这样它就不会“松耦合”(动作一个接一个地发送到selenium服务器)。 让我解释一下:
在Selenium RC中,你可以通过fireEvent(定位器,“模糊”)和fireEvent(定位器,“焦点”)来触发模糊和焦点。但是,在将模糊事件发送到浏览器之后,焦点事件不会直接跟随javascript命令堆栈中的模糊事件。在以下情况下,这是一个问题:检测一组小部件的模糊,例如一组文本框。
我的所作所为:所有文本框共享同一个侦听器,当出现模糊时,我会运行一个额外的命令,检查其中一个文本框是否捕获了焦点事件,如果是,则忽略模糊。我在javascript中运行的这个附加命令在所有等待命令运行后自动执行,在这种情况下,focus命令是这些等待命令之一。
返回Selenium RC:在Selenium服务器触发blur事件之后,它等待下一个命令,在这种情况下是焦点事件并将触发它。但是,正如您所理解的那样,同时已经触发了addiontal命令并且未检测到新的焦点事件。因此,检测和处理组模糊,在这种情况下,模糊处理不正确,因为模糊后不会直接触发焦点,例如浏览器会这样做....
我希望你理解我的问题,因为它有点难以解释。 有什么想法如何解决这个问题?所以我可以测试正确的行为? (没有我的验证过早发生,因为没有正确捕获组模糊)
我认为解决这个问题的方法是:将一段javascript发送到将要评估的Selenium服务器,并将在彼此之后触发这两个事件。或者不是?......你怎么会这样做?
答案 0 :(得分:2)
我相信你正在寻找:
selenium.getEval(“[我的JavaScript在这里]”);
您可以发送您选择的javascript片段以便通过浏览器进行评估,这可以让您将焦点和模糊链接到一个命令。