【问题标题】:How to select multiple rows in a UI grid without holding CTRL key using C#?如何在不使用 C# 按住 CTRL 键的情况下选择 UI 网格中的多行?
【发布时间】:2019-05-13 17:19:41
【问题描述】:

我有一个用 Angular 编写的表格,当我编写下面的代码时,我无法单击以选择多行(它适用于下面的表格示例)。对于我的工作表,它只允许我一次选择一行,因此循环不起作用。 我的问题是如何选择 UI 网格表中的所有行?

我尝试编写一个循环来单击直到到达最后一行,但是对于工作中的 Angular 站点,它一次只允许选择一行。我不能使用 CTRL 键,因为它需要在没有用户交互的情况下运行。我已经查看了 selenium 的 Actions 类,但我无法让它工作。

class Program
 {
    static void Main(string[] args)
    {
        IWebElement tableElement;

        String _address = "https://datatables.net/examples/api/select_row.html";

            IWebDriver _driver = new ChromeDriver();

            _driver.Navigate().GoToUrl(_address);
            tableElement = _driver.FindElement(By.Id("example"));

        Actions actions = new Actions(_driver);

        var noRows = _driver.FindElements(By.XPath("//table[@id='example']/tbody/tr"));

        for (int i = 0; i < noRows.Count; i++)
        {
            noRows[i].Click();
        }

        Console.Write("ALl lines seleected");
    }
  }
}

【问题讨论】:

  • 能分享一下tr html吗(有选择的和没有选择的)
  • 这是 HTML 表格的一行
    Name 职位 办公室 年龄 入职日期 薪水
    Tiger Nixon 系统架构师 爱丁堡 61 2011/04/25 td> $320,800

标签: c# angularjs selenium selenium-webdriver


【解决方案1】:

我通过添加这一行来解决

actions.KeyDown(Keys.Control).Click(gridTotal[1]).KeyUp(Keys.Control).Build().Perform();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-23
    • 2011-04-24
    • 2011-01-25
    • 1970-01-01
    • 2011-01-23
    • 1970-01-01
    相关资源
    最近更新 更多