如何在 Selenium 中选择多个元素(不是 <Select> - <Option>)

Ram*_*V K 5 c# selenium list

如何在 C# 中使用 Selenium WebDriver 从有序列表中选择多个 Web 元素?

我想手动完成,我会按 Ctrl 并选择多个选项。我想自动化这个。

下面是示例 HTML:

<ol id="selectable" class="ui-selectable">
        <li class="ui-state-default ui-selectee">1</li>
        <li class="ui-state-default ui-selectee">2</li>
        <li class="ui-state-default ui-selectee">3</li>
        <li class="ui-state-default ui-selectee">4</li>
        <li class="ui-state-default ui-selectee">5</li>
        <li class="ui-state-default ui-selectee">6</li>
        <li class="ui-state-default ui-selectee">7</li>
        <li class="ui-state-default ui-selectee">8</li>
        <li class="ui-state-default ui-selectee">9</li>
        <li class="ui-state-default ui-selectee">10</li>
        <li class="ui-state-default ui-selectee">11</li>
        <li class="ui-state-default ui-selectee">12</li>
</ol> 
Run Code Online (Sandbox Code Playgroud)

感谢您的时间和努力。

小智 2

您是否尝试过使用 GetElementsByClassName() ?与 Actions 类中的 KeyDown 命令相结合(请参阅此问题的答案),这样的东西可能对您有用......

using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium.Interactions;

var driver = new WebDriver();

var elements = driver.GetElementsByClassName("ui-state-default ui-selectee");

var action = new Actions(driver);

action.KeyDown(Keys.Control);

foreach (var element in elements)
{

    // If element properties match your selection
    element.Click()

}
Run Code Online (Sandbox Code Playgroud)