【问题标题】:Scraping checkbox with Selenium C#使用 Selenium C# 抓取复选框
【发布时间】:2019-01-15 23:42:51
【问题描述】:

这是我要从中提取的表。 Checkbox 的元素是这样的。

我正在通过使用 datagridtable 抓取数据。

string Header = driver.FindElement(By.CssSelector("#gridComponent > div.k-grid-header > div > table > thead > tr")).Text;
        // Get rows strings
        foreach(string row in Header.Split('\r'))
        {
            DataRow dataRow = dt.NewRow();
        }
        string[] HeaderSplit = Header.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries);
        // create DataTable
        foreach (string c in HeaderSplit)
        {           
            dt.Columns.Add(c);
        }     

        var table = driver.FindElement(By.CssSelector("#gridComponent"));

        //Get Row value
        foreach (var row in table.FindElements(By.TagName("tr")))
        {
            //Configure Number of Col and row
            int cellIndex = 0;
            string[] arr = new string[11];

            //Get Cell Data
            foreach (var cell in row.FindElements(By.TagName("td")))
            {
                Console.WriteLine(cell); 
                //Number of Col Data Load
                    if (cellIndex <= 10)
                    {
                        arr[cellIndex] = cell.Text;
                    }
                    else
                        continue;    

                cellIndex++;
            }
            dt.Rows.Add(arr);
        }

我无法选择复选框,因为它不是文本形式。我应该怎么做才能用 True&False 从网站中的复选框中抓取所有数据?

【问题讨论】:

标签: c# selenium selenium-webdriver web-scraping selenium-chromedriver


【解决方案1】:

您可以通过.getAttribute('checked')获得它

bool cbox = Convert.ToBoolean(row.FindElement(By.CssSelector("input[type='checkbox']")).getAttribute("checked"))

【讨论】:

  • 非常感谢您的帮助。我应该将这段代码放在哪里以便在我想要的列上显示它?
猜你喜欢
  • 1970-01-01
  • 2018-02-28
  • 1970-01-01
  • 1970-01-01
  • 2021-12-02
  • 2019-01-19
  • 1970-01-01
  • 2017-06-09
  • 1970-01-01
相关资源
最近更新 更多