Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法使用webdriver在for each循环中的多个选项卡上悬停_C#_Selenium - Fatal编程技术网

C# 无法使用webdriver在for each循环中的多个选项卡上悬停

C# 无法使用webdriver在for each循环中的多个选项卡上悬停,c#,selenium,C#,Selenium,我有一个表单编辑器web应用程序,用于创建表单和工作流。应用程序的主页左侧包含一个菜单 菜单看起来像 当我将鼠标滑过任何选项卡时,都会得到一个工具提示 我目前正在尝试使用SeleniumWebDriver和c#验证这一点。下面是菜单的HTML <div class="tabmenu"> <div class="tab-list"> <div class="mask"></div> <ul class="leve

我有一个表单编辑器web应用程序,用于创建表单和工作流。应用程序的主页左侧包含一个菜单

菜单看起来像

当我将鼠标滑过任何选项卡时,都会得到一个工具提示

我目前正在尝试使用SeleniumWebDriver和c#验证这一点。下面是菜单的HTML

<div class="tabmenu">
    <div class="tab-list">
        <div class="mask"></div>
    <ul class="level1" style="left: 0px;">
        <li class="l1-item top" title="">
            <span class="selection-top"></span>
            <table class="mover">
                <tbody>
                    <tr>
                        <td class="tooltip">
                            <span>Create Flow</span>
                        </td>
                        <td>
                            <span class="logo logo12">
                                <span class="status status-none"></span>
                            </span>
                        </td>
                    </tr>
                </tbody>
            </table>
            <span class="selection-bottom"></span>
            <div class="hr"></div>
        </li>
        <li class="l1-item prev" title="">
            <span class="selection-top"></span>
            <table class="mover" style="left: -110px;">
                <tbody>
                    <tr>
                        <td class="tooltip">
                            <span>Dashboard</span>
                        </td>
                        <td>
                            <span class="logo logo11">
                                <span class="status status-none"></span>
                            </span>
                        </td>
                    </tr>
                </tbody>
            </table>
            <span class="selection-bottom"></span>
            <div class="hr"></div>
        </li>
    </ul>
    </div>
</div>

  • 创建流
  • 仪表板
当我将鼠标移到任何选项卡上时,
  • li”)] [缓存查找] 私有IList LeftMenuItems; 公共bool isToolTipPresentOnEachTab() { foreach(LeftMenuItems中的IWebElement元素) { 动作动作=新动作(驱动); action.MoveToElement(ele.Perform(); if((ele.findelelement(By.CssSelector(“td.tooltip>span”))).GetAttribute(“textContent”)!=“创建流” &&!ele.GetAttribute(“类”)。包含(“showtooltip”)){ 返回false; } } 返回true; }
  • 我只在循环的第一次迭代中得到工具提示,而测试在第二次迭代中失败


    有人能帮我解决这个问题吗?

    这里的IF条件应该做什么?因为您的第一次迭代成功了,我建议尝试在action.MoveToElement(ele.Perform()之后添加等待(~1s));查看是否只是等待工具提示出现的问题。如果条件检查某个特定选项卡名称,而工具提示不会出现,则只需返回false,以防所有其他选项卡的工具提示都不会出现。是否尝试像我之前的评论中那样添加等待?是的,我尝试了,但等待没有影响。查找g目前的其他解决方法:)
        [FindsBy(How = How.CssSelector, Using = "ul.level1 > li")]
        [CacheLookup]
        private IList<IWebElement> LeftMenuItems;
    
        public bool isToolTipPresentOnEachTab()
        {
            foreach (IWebElement ele in LeftMenuItems)
            {
                Actions action = new Actions(driver);
                action.MoveToElement(ele).Perform();
                if((ele.FindElement(By.CssSelector("td.tooltip > span")).GetAttribute("textContent")) != "Create Flow"
                        && !ele.GetAttribute("class").Contains("showtooltip")){
                    return false;
                }
            }
            return true;
        }