在 Firefox 中打开并操作 Web 表单

发布于 2024-10-22 03:17:35 字数 235 浏览 1 评论 0原文

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

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

感谢您的回答!

布鲁诺

I need to open a link from a winform application in a firefox browser. Then I would like to autocomplete the form's inputs (like username and password) and generate a button click (a login button to submit the form for instance).

I'm currently doing the same think with IE using Interop.SHDocVw.dll, but I need a firefox implementation.
Is there such a dll for the mozilla's broswer? Do I need to develop a plugin? or maybe I might have to use a UI testing framework?

thanks for the answers!

Bruno

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

柠栀 2024-10-29 03:17:35

因此,我使用 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);
    }

多亏了间谍++,我找到了窗口的类和标题。

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

SendKeys.SendWait("{TAB}");

它会移动焦点,就像我按 TAB 两次...有人知道发生了什么吗?

So I start Firefox using Process start:

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

I then use USER32.DLL to find and focus on the Firefox window:

// 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);
    }

I found the window's class and title thanks to spy++.

So my problem no is to move to the next input on the page... when I use this:

SendKeys.SendWait("{TAB}");

it moves the focus as is I pressed TAB 2 times.... Does anyone knows what's happening ?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文