【问题标题】:How to manage Dropdown menu in selenium? c#如何管理硒中的下拉菜单? C#
【发布时间】:2021-04-24 07:08:15
【问题描述】:

我正在尝试访问我正在工作的页面中的permissions 部分,以便在 selenium 中进行测试,但我不知道如何处理该元素,我猜是一个下拉菜单,所以我编写了这样的代码(我正在使用 selenium POM btw):

[FindsBy(How = How.CssSelector, Using =".dir")]
private IWebElement elemPermi;

    public  Permissions selectElementFromDropdown( string text)
    {
        SelectElement drop = new SelectElement(elemPermi);
        drop.SelectByText(text);
        return new Permissions(driver);
    }

在测试中我有这个:

UsuarioMain usuario = new UsuarioMain(driver);
usuario.selectElementFromDropdown("Modules");

这是页面的 HTML 代码:

<div id="mainmenu">
    <ul id="nav" class="dropdown dropdown-horizontal">
        <li class="normal"><a href="/TravelTendering/" class="selected">Home</a></li>
        <li class="normal"><a href="/TravelTendering/Configuration">Configurations</a></li>
        <li class="dir">Permissions<div class="separadorMenu"></div>
            <ul class="dropdownMenu"><li><a href="/TravelTendering/Profile">Profiles</a></li>
            <li><a href="/TravelTendering/Role">Roles</a></li>
            <li><a href="/TravelTendering/Permission">Modules</a></li>
            <li><a href="/TravelTendering/User">Users</a></li>
            </ul>
        </li>
        <li class="dir">Tenders<div class="separadorMenu"></div>
            <ul class="dropdownMenu"><li><a href="/TravelTendering/Tender">Create Tender</a></li>
            <li><a href="/TravelTendering/SeeTender">See Tenders</a></li>
            </ul>
        </li>
            <li class="normal"><a href="/TravelTendering/Supplier">Invitations</a></li>
            <div style="clear:both; float:none;"></div>
    </ul>
</div>

但是当我运行我的测试时会出现这个错误:

Message: OpenQA.Selenium.Support.UI.UnexpectedTagNameException : Element should have been select but was li

我希望能够与下拉列表的任何元素进行交互,所以如果你们能帮助我,我将不胜感激。

【问题讨论】:

    标签: c# visual-studio selenium


    【解决方案1】:
    SelectElement drop = new SelectElement(elemPermi);
    

    你可以只使用带有选择标签的 SelectElement 类,对于其他标签,你可以使用普通的 webelement 交互,比如

    1. 点击下拉菜单
    2. 等到所有选项都显示出来
    3. 使用索引或文本单击任何特定选项(使用 li[2] 或 li[contains(text(),"blabla")]

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多