【问题标题】:Nested Hover in Selenium C#Selenium C#中的嵌套悬停
【发布时间】:2017-10-09 00:52:54
【问题描述】:

我正在为我在 Orange Hrm 应用程序中使用 Selenium C# 的学习创建测试用例。 https://enterprise-demo.orangehrmlive.com/auth/login 用户名和密码:admin。

登录后,有不同的菜单,我正在遍历管理>用户管理>用户并单击用户。 但是,我不知道如何在 Selenium C# 中使用 MouseOver。 附上截图供大家参考。enter image description here

【问题讨论】:

    标签: c# selenium


    【解决方案1】:

    根据我有限的知识,您必须分几步完成。 下面是一个使用 NgWebDriver (angularJS app)的例子

                Actions builder = new Actions(ngDriver);
                var elementToHover= ngDriver.FindElement(By.ClassName("dpcontract"));
                builder.MoveToElement(elementToHover, 10 , 0)
                builder.Build().Perform();
    

    这通过找到目标元素,将鼠标移动到其位置 (x/y),在 x 上偏移 10(在我的例子中)来构建一个新动作。

    您可以向该操作触发器添加更多事件。我拥有的拖放类型操作的原始(工作)代码是这样的

                Actions builder = new Actions(ngDriver);
                var elementToClick = ngDriver.FindElement(By.ClassName("dpcontract"));
    
                builder.MoveToElement(elementToClick, elementToClick.Size.Width - 1, 0)
                .ClickAndHold()
                .MoveByOffset(150, 0)
                .Release();
    
                builder.Build().Perform();
    

    【讨论】:

    • 你当然是对的,但是我没有使用 ngdriver。根据您的建议,我已经修改并编写了哪些有效。
    【解决方案2】:

    感谢 Jens Stragier 的建议。根据您的建议,我写了以下内容,它对我有用。

                Actions action = new Actions(Driver);
                action.MoveToElement(elemWomen);
                Thread.Sleep(500);
                action.ClickAndHold(elemWomen);
                action.Release(TShirt);
               action.Click(TShirt);
                action.Perform();
    

    【讨论】:

    • 如果您在 Chrome 中执行 ClickAndHold,您可能需要添加 MoveByOffset(1,1) 作为解决方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-28
    • 2012-11-27
    相关资源
    最近更新 更多