如何让Selenium WebDriver滚动到特定元素以在屏幕上显示它.我尝试了很多不同的选择,但没有运气.这不适用于c#绑定吗?
我可以让它跳转到特定的位置ex ((IJavaScriptExecutor)Driver).ExecuteScript("window.scrollTo(0, document.body.scrollHeight - 150)");
但是我希望能够将它发送到不同的元素,而不是每次都给出确切的位置.
public IWebElement Example { get { return Driver.FindElement(By.Id("123456")); } }
例1) ((IJavaScriptExecutor)Driver).ExecuteScript("arguments[0].scrollIntoView(true);", Example);
例2) ((IJavaScriptExecutor)Driver).ExecuteScript("window.scrollBy(Example.Location.X", "Example.Location.Y - 100)");
当我观看它时,它不会将页面跳转到元素,并且异常与屏幕外的元素匹配.
更新:我添加了一个bool ex = Example.Exists(); 之后检查结果.它确实存在(它是真的).它没有显示(因为它仍然在屏幕外,因为它没有移动到元素)它没有被选中??????
有人看到成功By.ClassName.有没有人知道这样做是否有问题By.Id在c#绑定中?