Selenium RC fireEvent()在c#中不起作用

本文关键字:不起作用 RC fireEvent Selenium | 更新日期: 2023-09-27 18:11:41

我正在编写一个自动化测试来测试注册页面。此页面上的每个文本框都在模糊事件时进行验证。只有当所有文本框的验证通过时,才会启用"注册"按钮。

我已经为每个文本框执行了以下

硒。类型(textbox_id、内容);//在每一轮测试中以编程方式生成内容硒。FireEvent (textbox_id,"模糊");

所有的注册信息被填满,但它的模糊事件触发。注册按钮仍然禁用。另外,我用java写了一个完全相同的测试,没有出现任何问题。

我很想用java完成它,但是我被限制在我可以用于这项任务的语言;c#。谁能告诉我是什么原因导致这个问题的?

Selenium RC fireEvent()在c#中不起作用

我遇到了同样的问题,并通过进入DOM并使用javascript触发blur事件找到了解决方案。我将该方法作为IWebElement的扩展方法编写。请看下面的代码:

public static void Blur(this IWebElement element)
{
    var jsExecutor = (IJavaScriptExecutor)Context.Driver;
    try
    {
        jsExecutor.ExecuteScript(
            @"var fireOnThis = arguments[0];
             fireOnThis.scrollIntoView(false);
             var evt = 'blur';      
             if( document.createEvent ) {
             var evObj = document.createEvent('MouseEvents');
             evObj.initEvent(evt, true, false);
             fireOnThis.dispatchEvent(evObj);
             } else if (document.createEventObject) {
            fireOnThis.fireEvent('on'+evt);
        }", element);
    }
    catch
    {}
}