C#学习教程:如何使用C#使用SeleniumWebDriver滚动到一个元素我尝试了很多不同的选择但没有运气。这不适用于c#绑定吗?我可以跳转到特定位置ex((IJavaScriptExecutor)Driver).ExecuteScript("window.scrollTo(0,document.body.scrollHeight-150)");但我希望能够将它发送到不同的元素,而不是每次都给出确切的位置。publicIWebElement示例{get{returnDriver.FindElement(By.Id("123456"));}}Ex1)((IJavaScriptExecutor)Driver).ExecuteScript("arguments[0].scrollIntoView(true);",Example);示例2((IJavaScriptExecutor)Driver).ExecuteScript("window.scrollBy(Example.Location.X","Example.Location.Y-100)");我看的时候没有跳转页面到元素,异常匹配到一个离屏元素。更新:我添加了一个boolex=Example.Exists();之后检查结果。它确实存在(这是真的)。它没有显示(因为它仍然在屏幕外,因为它没有移动到元素)它没有被选中??????有人看到成功By.ClassName。有谁知道在C#bindings.Id中执行此操作是否有问题?这是一个较老的问题,但我相信有比上面提出的更好的解决方案。这是原始答案:https://stackoverflow.com/a/26461431/1221512您应该使用Actions类来执行滚动到元素。varelement=driver.FindElement(By.id("element-id"));动作actions=newActions(driver);动作.MoveToElement(元素);行动.执行();这适用于Chrome、IE8和IE11:publicvoidScrollTo(intxPosition=0,intyPosition=0){varjs=String.Format("window.scrollTo({0},{1})",xPosition,yPosition);JavaScript执行器。执行脚本(js);}publicIWebElementScrollToView(通过选择器){varelement=WebDriver.FindElement(选择器);滚动到视图(元素);返回元素;}publicvoidScrollToView(IWebElementelement){if(element.Location.Y>200){ScrollTo(0,element.Location.Y-100);//Makesureelementisintheviewbutbelowthetopnavigationpane}}这对我有用:以上是C#学习教程:HowtouseSeleniumWebDriverwithC#toscrolltotheelementShareallContent,ifitisuseful给你,你需要了解更多的C#学习教程,希望你多多关注—varelem=driver.FindElement(By.ClassName("something"));driver.ExecuteScript("arguments[0].scrollIntoView(true);",elem);本文来自网络收藏不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
