我想点击使用Coded UI在窗口中看不到的Wincontrol

时间:2014-08-08 07:28:55

标签: c# automation coded-ui-tests

我有一个在窗口中看不到的Wincontrol,我必须拖动滚动条才能看到它。如何使用编码的UI访问wincontrol

2 个答案:

答案 0 :(得分:0)

如果SetFocus不起作用,那么您可以移动滚动条,直到控件可以像Ralt建议的那样可见。我使用以下示例解决了一个类似问题。代码将点击位于其最下方点上方的滚动条。根据需要单击多次。

    public void ScrollSlide(UITestControl scrollBar)
    {
        Point bottomOfScrollBar = new Point(scrollBar.Left + (scrollBar.Width / 2), scrollBar.Top + (scrollBar.Height - (scrollBar.Height / 20)

        Mouse.Move(null, new Point(scrollBar.Left + (scrollBar.Width / 2), scrollBar.Top + (scrollBar.Height - (scrollBar.Height / 15))));
        Mouse.Move(null, bottomOfScrollBar )));
        Mouse.DoubleClick(null, bottomOfScrollBar ))));
        Mouse.DoubleClick(null, bottomOfScrollBar )));
        Mouse.DoubleClick(null, bottomOfScrollBar )));
    }

答案 1 :(得分:0)

获取下面的javascript并在你的点击命令之前插入它(将滚动高度设置为你想要它从页面底部的高度,在我的情况下我使用的是5)。这实际上不是最好或最实用的编码方式,但这比其他编码解决方案更方便,工作频率更高。

((IJavaScriptExecutor)_driver).ExecuteScript("window.scrollTo(0, document.body.scrollHeight - 5)");

这应该有用,不应该要求您添加更多引用或创建任何新变量 - 但请务必将_driver变量更改为您的变量!

很可能"浏览器"如果没有,或者您不知道要使用哪个变量,最好使用windows system命令。希望这有帮助。