如何使用WebBrowser控件在弹出窗口中输入用户名和密码

3
我们正在尝试使用C#对Web页面进行自动化处理,我们的目标是访问该页面并选中/取消选中某些元素。问题是,在页面打开之前,它会弹出一个"Windows安全性"弹窗,要求输入用户名和密码。我们如何在弹出窗口中传递凭据?我们正在使用Web浏览器控件。
我们已经尝试了基本的身份验证步骤。我们甚至尝试了这种方式:"http://username:password@mysite.asp[在我们的情况下只有密码]",但它没有起作用。我将Chrome设置为默认浏览器,因为IE无法执行上述命令。这个问题只出现在Chrome中。因此,我将Chrome设置为默认浏览器。
我们尝试使用下载的.dll文件使用WebKit浏览器控件,但是使用WebKit浏览器控件时,我们无法通过getelementsbyId()访问元素。
以下是代码:
   public Form1()
   {
      InitializeComponent();
   }

    void webBrowser_DocumentCompleted(objectsender,WebBrowserDocumentCompletedEventArgs e)
    {
        bBusy = false;
    }

    private void button1_Click(object sender, EventArgs e)
    {
        NavigateToUrlSync("http://:password@192.168.0.1/RgOptions.asp");

    }
    private void NavigateToUrlSync(string url)
    {
        bBusy = true;
        this.webBrowser1.Navigate(url);


        while (bBusy)
        {
            Application.DoEvents();

       }

    }

请帮忙。


我正在使用.NET 4.0框架。我试图在这个路由器设置页面中选中/取消复选框和单选按钮。我已经让代码工作了。但是我无法自动化用户名密码身份验证弹出对话框。我必须手动输入它,然后进入页面并执行操作。我想以某种方式绕过身份验证或传递凭据并进入页面。 - user2424531
1
你找到了解决这个问题的任何方案吗? - Aditi
1个回答

0
你可以尝试以下代码,它应该可以正常工作。
    Uri u = new Uri("http://192.168.0.91");
    UriBuilder ub = new UriBuilder(u);
    ub.UserName = "admin";
    ub.Password = "admin";
    webBrowser1.Url = ub.Uri;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接