Selenium webdriver 在selenium web驱动程序中缩短长css路径

Selenium webdriver 在selenium web驱动程序中缩短长css路径,selenium-webdriver,Selenium Webdriver,我使用的CSS选择器是 #menu-container > div.navbar-collapse.collapse.bs-navbar-collapse > ul:nth-child(1) > li.dropdown.open > ul > li:nth-child(1) > a > span.menu-label 有没有办法把它缩短 HTML 智能工作室 文件 拯救 ⌘ s 字体 发表 编辑 撤消 ⌘ Z 重做 ⇧

我使用的CSS选择器是

#menu-container > div.navbar-collapse.collapse.bs-navbar-collapse > ul:nth-child(1) > li.dropdown.open > ul > li:nth-child(1) > a > span.menu-label
有没有办法把它缩短

HTML


智能工作室
    文件
    • 拯救 ⌘ s
    • 字体
    • 发表
    编辑
    • 撤消 ⌘ Z
    • 重做 ⇧ ⌘ Z
    • 削减 ⌘ X
    • 复制 ⌘ C
    • 粘贴 ⌘ v
    • 它太长,无法在代码中使用。在selenium web驱动程序中,有没有一种方法可以缩短它? 粘贴到位 ⇧ ⌘ v
    • 安排
      • 摆在前面 ⇧ ⌘ ↑
      • 提出 ⌘ ↑
      • 发回 ⌘ ↓
      • 发回 ⇧ ⌘ ↓
    查看
    • 隐藏面板
    • 隐藏页外暗显
    面板
    • 项目
    • 性质
    • 设计
  • 帮助
    • 支持资源
    • 评价我们
    • 提出一个特征
如果没有看到您所指的HTML,就无法确定这一点。但是,看起来您可能可以通过以下方式逃脱:

#菜单容器span.菜单标签

看起来您熟悉
>
操作符,它选择元素的直接子元素。
操作符(空格)选择元素的任何后代

只有当元素内部没有其他
span
s类的
菜单标签
时,这才有效
<div id="menu-container" class="navbar navbar-inverse navbar-fixed-top" role="navigation">
    <div class="navbar-header">
        <a class="navbar-brand">SmartStudio</a>
        <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".bs-navbar-collapse">
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
        </button>
    </div>
    <div class="navbar-collapse collapse bs-navbar-collapse">
        <ul class="nav navbar-nav">
            <li class="dropdown"><a class="dropdown-toggle" data-toggle="dropdown">File</a>
                <ul class="dropdown-menu">
                    <li>
                        <a>
                            <span class="pull-left"></span>
                            <span class="menu-label">Save</span>
                            <span class="pull-right">⌘ S</span>
                        </a>
                    </li>
                    <li>
                        <a>
                            <span class="pull-left"></span>
                            <span class="menu-label">Fonts</span>
                        </a>
                    </li>
                    <li class="divider"><span></span></li>
                    <li>
                        <a>
                            <span class="pull-left"></span>
                            <span class="menu-label">Publish</span>
                        </a>
                    </li>
                </ul>
            </li>
            <li class="dropdown"><a class="dropdown-toggle" data-toggle="dropdown">Edit</a>
                <ul class="dropdown-menu">
                    <li>
                        <a>
                            <span class="pull-left"></span>
                            <span class="menu-label">Undo</span>
                            <span class="pull-right">⌘ Z</span>
                        </a>
                    </li>
                    <li>
                        <a>
                            <span class="pull-left"></span>
                            <span class="menu-label">Redo</span>
                            <span class="pull-right">⇧ ⌘ Z</span>
                        </a>
                    </li>
                    <li class="divider"><span></span></li>
                    <li>
                        <a>
                            <span class="pull-left"></span>
                            <span class="menu-label">Cut</span>
                            <span class="pull-right">⌘ X</span>
                        </a>
                    </li>
                    <li>
                        <a>
                            <span class="pull-left"></span>
                            <span class="menu-label">Copy</span>
                            <span class="pull-right">⌘ C</span>
                        </a>
                    </li>
                    <li>
                        <a>
                            <span class="pull-left"></span>
                            <span class="menu-label">Paste</span>
                            <span class="pull-right">⌘ V</span>
                        </a>
                    </li>
                    <li>
                        <a>
                            <span class="pull-left"></span> its too long to use in code. Is there a way to make it shorter in selenium web driver?
                            <span class="menu-label">Paste in Place</span>
                            <span class="pull-right">⇧ ⌘ V</span>
                        </a>
                    </li>
                    <li class="divider"><span></span></li>
                    <li class="dropdown-submenu">
                        <a>
                            <span class="pull-left"></span>
                            <span class="menu-label">Arrange</span>
                        </a>
                        <ul class="dropdown-menu">
                            <li>
                                <a>
                                    <span class="pull-left"></span>
                                    <span class="menu-label">Bring to Front</span>
                                    <span class="pull-right">⇧ ⌘ ↑</span>
                                </a>
                            </li>
                            <li>
                                <a>
                                    <span class="pull-left"></span>
                                    <span class="menu-label">Bring Forward</span>
                                    <span class="pull-right">⌘ ↑</span>
                                </a>
                            </li>
                            <li>
                                <a>
                                    <span class="pull-left"></span>
                                    <span class="menu-label">Send Backward</span>
                                    <span class="pull-right">⌘ ↓</span>
                                </a>
                            </li>
                            <li>
                                <a>
                                    <span class="pull-left"></span>
                                    <span class="menu-label">Send to Back</span>
                                    <span class="pull-right">⇧ ⌘ ↓</span>
                                </a>
                            </li>
                        </ul>
                    </li>
                </ul>
            </li>
            <li class="dropdown"><a class="dropdown-toggle" data-toggle="dropdown">View</a>
                <ul class="dropdown-menu">
                    <li>
                        <a>
                            <span class="pull-left"></span>
                            <span class="menu-label">Hide Panels</span>
                        </a>
                    </li>
                    <li>
                        <a>
                            <span class="pull-left"></span>
                            <span class="menu-label">Hide Off Page Dimming</span>
                        </a>
                    </li>
                </ul>
            </li>
            <li class="dropdown"><a class="dropdown-toggle" data-toggle="dropdown">Panel</a>
                <ul class="dropdown-menu">
                    <li>
                        <a>
                            <span class="pull-left icon icon-check"></span>
                            <span class="menu-label">Project</span>
                        </a>
                    </li>
                    <li>
                        <a>
                            <span class="pull-left icon icon-check"></span>
                            <span class="menu-label">Properties</span>
                        </a>
                    </li>
                    <li>
                        <a>
                            <span class="pull-left icon icon-check"></span>
                            <span class="menu-label">Design</span>
                        </a>
                    </li>
                </ul>
            </li>
            <li class="dropdown open"><a class="dropdown-toggle" data-toggle="dropdown" aria-expanded="true">Help</a>
                <ul class="dropdown-menu">
                    <li>
                        <a>
                            <span class="pull-left"></span>
                            <span class="menu-label">Support Resources</span>
                        </a>
                    </li>
                    <li>
                        <a>
                            <span class="pull-left"></span>
                            <span class="menu-label">Rate Us</span>
                        </a>
                    </li>
                    <li>
                        <a>
                            <span class="pull-left"></span>
                            <span class="menu-label">Suggest a Feature</span>
                        </a>
String menuName = "Help";
String submenuName = "Support Resources";
driver.findElement(By.linkText(menuName)).click();
driver.findElement(By.linkText(submenuName)).click();
String menuName = "Help";
String submenuName = "Support Resources";
List<WebElement> menus = driver.findElements(By.cssSelector("#menu-container > div > ul.nav.navbar-nav > li.dropdown"));
// List<WebElement> menus = driver.findElements(By.cssSelector("#menu-container li.dropdown")); // possible shorter alternative
for (WebElement menu : menus)
{
    if (menu.getText().equals(menuName))
    {
        menu.click();
        List<WebElement> submenus = menu.findElements(By.cssSelector("span.menu-label"));
        for (WebElement submenu : submenus)
        {
            if (submenu.getText().equals(submenuName))
            {
                submenu.click();
                break;
            }
        }
        break;
    }
}