在Firefox中打开并操作Web表单

时间:2011-03-17 04:58:40

标签: winforms firefox input dom-manipulation

我需要在firefox浏览器中打开winform应用程序的链接。然后我想自动填写表单的输入(如用户名和密码)并生成一个按钮单击(例如,提交表单的登录按钮)。

我目前正在使用Interop.SHDocVw.dll对IE进行同样的思考,但我需要一个firefox实现。 mozilla的broswer有这样的dll吗?我需要开发一个插件吗?或者我可能不得不使用UI测试框架?

感谢您的回答!

布鲁诺

1 个答案:

答案 0 :(得分:0)

所以我使用Process start启动Firefox:

Process.Start("firefox.exe", "http://www.mywebsite.com");

然后我使用USER32.DLL查找并关注Firefox窗口:

// Get a handle to an application window.
[DllImport("USER32.DLL", CharSet = CharSet.Unicode)]
public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);

// Activate an application window.
[DllImport("USER32.DLL")]
public static extern bool SetForegroundWindow(IntPtr hWnd);

private void btnEnterText_Click(object sender, EventArgs e)
    {
        var handle = FindWindow("MozillaUIWindowClass", "Environnement de recette 1.4.0.3 - Mozilla Firefox");
        SetForegroundWindow(handle);
        SendKeys.SendWait(txtEntry.Text);
    }

我发现窗口的类和标题归功于spy ++。

所以我的问题是移动到页面上的下一个输入...当我使用它时:

SendKeys.SendWait("{TAB}");

它移动焦点,因为我按TAB 2次....有谁知道发生了什么?