【问题标题】:How to input data to inputbox on website and "click" on button如何在网站上的输入框中输入数据并在按钮上“单击”
【发布时间】:2022-11-03 01:24:05
【问题描述】:

我正在尝试访问用密码锁定的简单 WordPress 网页。登录到该页面后,我想读取数据。我已经测试了我的代码以读取数据并且它正在工作,但我不知道如何将文本输入到输入框并按下按钮。

//*[@id="pwbox-1902"] -> XPATH to input box
//*[@id="content"]/div/form/p[2]/input -> XPATH to submit button

请问,我该怎么办? 谢谢你的帮助。

我希望登录到该页面,然后使用我的代码来读取数据。

【问题讨论】:

    标签: c# html


    【解决方案1】:

    几个小时后,我设法让它工作。我的解决方案不是最漂亮或最好的,但我正在学习 C#。

    在下面我发布了我的代码,这要归功于我设法登录到 WordPress 页面并从表中读取数据。我使用了 Selenium 和 HTML Agility 包。

    我希望它找到有用的人:)

    如果你有一些问题可以问我,或者如果你想让我的代码更好,我很乐意看到你的代码。

    祝你今天过得愉快。

            public void Login()
        {
            //var driverServices = ChromeDriverService.CreateDefaultService();
            //driverServices.HideCommandPromptWindow = true;
    
            var chromeOptions = new ChromeOptions();
            chromeOptions.AddArguments("--headless");
            
            using (var browser = new ChromeDriver("Chrome driver path", chromeOptions))
            {
                browser.Navigate().GoToUrl("your website");
                
                browser.FindElement(By.Id("input box where you want add password")).SendKeys("Your password");
                browser.FindElement(By.Name("Submit")).Click();
    
                DataTable dt = new DataTable();
    
                dt.Columns.Add("Time", typeof(string));
                dt.Columns.Add("Hosts", typeof(string));
                dt.Columns.Add("Names", typeof(string));
                dt.Columns.Add("Email", typeof(string));
                dt.Columns.Add("Phone", typeof(string));
                dt.Columns.Add("Status", typeof(string));
                dt.Columns.Add("Message", typeof(string));
                dt.Columns.Add("Table", typeof(string));
                int count = 0;
    
                HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
                doc.LoadHtml(browser.PageSource);
    
                foreach (var row in doc.DocumentNode.SelectNodes("//*[@id="post-580"]/div/div[2]/table/tbody/tr"))
                {
                    DataRow dr = dt.NewRow();
                    foreach (var cell in row.SelectNodes("td"))
                    {
                        count++;
    
                        switch (count)
                        {
                            case 1:
                                dr["Time"] = cell.InnerText;
                                break;
                            case 2:
                                dr["Hosts"] = cell.InnerText;
                                break;
                            case 3:
                                dr["Names"] = cell.InnerText;
                                break;
                            case 4:
                                dr["Email"] = cell.InnerText;
                                break;
                            case 5:
                                dr["Phone"] = cell.InnerText;
                                break;
                            case 6:
                                dr["Status"] = cell.InnerText;
                                break;
                            case 7:
                                if (cell.InnerText == "  My text   ")
                                {
                                    dr["Message"] = cell.InnerText.Replace("  My text   ", "");
                                }
                                else
                                {
                                    dr["Message"] = cell.InnerText.Replace("My text", "");
                                }
                                break;
                            case 8:
                                dr["Table"] = cell.InnerText;
                                if (cell.InnerText == "")
                                {
                                    dr["Table"] = "My text";
                                }
                                else
                                {
                                    dr["Table"] = "My text";
                                }
                                count = 0;
                                break;
                            default:
                                break;
                        }
                    }
    
                    dt.Rows.Add(dr);
                    dt_table.DataSource = dt;
                }
    
                browser.Quit();
            }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-18
      • 1970-01-01
      • 2018-09-23
      • 1970-01-01
      • 1970-01-01
      • 2018-01-13
      • 2016-08-23
      • 1970-01-01
      相关资源
      最近更新 更多