1

我正在尝试触发输入元素的 OnChange 事件。更改元素的值不会触发 onChange 事件。是否可以向浏览器发送按键以触发输入元素的 onchange 事件。

4

1 回答 1

0

是的,可以向浏览器发送 key down 和 key up 事件:

        browser.FinishLoadingFrameEvent += delegate(object sender, FinishLoadingEventArgs e)
        {
            if (e.IsMainFrame)
            {
                // The page is loaded completely. Press TAB key to set focus to text field.
                KeyParams paramers = new KeyParams(VirtualKeyCode.TAB, ' ');
                browser.KeyDown(paramers);
                browser.KeyUp(paramers);

                // Type 'Hello' text in the focused text field.
                paramers = new KeyParams(VirtualKeyCode.VK_H, 'H');
                browser.KeyDown(paramers);
                browser.KeyUp(paramers);

                paramers = new KeyParams(VirtualKeyCode.VK_E, 'e');
                browser.KeyDown(paramers);
                browser.KeyUp(paramers);

                paramers = new KeyParams(VirtualKeyCode.VK_L, 'l');
                browser.KeyDown(paramers);
                browser.KeyUp(paramers);

                paramers = new KeyParams(VirtualKeyCode.VK_L, 'l');
                browser.KeyDown(paramers);
                browser.KeyUp(paramers);

                paramers = new KeyParams(VirtualKeyCode.VK_O, 'o');
                browser.KeyDown(paramers);
                browser.KeyUp(paramers);
            }
        };

完整的示例可以通过以下链接找到:

http://dotnetbrowser-support.teamdev.com/documentation/simulating-keyboard-input

于 2017-01-03T06:57:24.110 回答