【发布时间】:2017-07-29 17:15:24
【问题描述】:
我正在模拟移动屏幕上进行测试,因此屏幕空间非常宝贵。我使用以下代码在单击之前将元素显示在视图中,但是,在 chrome 上,滚动条覆盖在单击操作发生之前不会清除。
IJavaScriptExecutor je = (IJavaScriptExecutor)Driver.Instance;
je.ExecuteScript("arguments[0].scrollIntoView(true); window.scrollBy(50, -200);", element);
Thread.Sleep(700);
我可以延长睡眠时间,但这会大大减慢我的测试速度。我已经尝试了我能想到的一切,但似乎没有任何效果。
我尝试过的事情
在初始化 chromedriver 时禁用滚动条覆盖。 (没有删除滚动覆盖)
chromeOptions.AddArguments("disable-overlay-scrollbar")
使用操作 api
Actions btnAction = new Actions(Driver.Instance);
btnAction.MoveToElement(element).Click().Perform();
MoveToElement 也有一个偏移参数,但据我所知,这不会影响元素在窗口中的定位方式。
有没有其他人遇到过这个问题?如果有,你是怎么解决的?
谢谢。
【问题讨论】:
标签: javascript c# selenium selenium-webdriver selenium-chromedriver