c#脚本执行器向下滚动不起作用

c#脚本执行器向下滚动不起作用,c#,selenium,selenium-webdriver,webdriver,C#,Selenium,Selenium Webdriver,Webdriver,我有个问题,因为我需要向下滚动页面, 所以我决定使用IJavaScriptExecutor IJavaScriptExecutor js = (IJavaScriptExecutor) driver; js.executeScript("window.scrollBy(0,1000)"); 我也试过了 js.ExecuteScript("arguments[0].scrollIntoView();", invite); js.ExecuteScript("window.scrollTo

我有个问题,因为我需要向下滚动页面, 所以我决定使用
IJavaScriptExecutor

IJavaScriptExecutor js =  (IJavaScriptExecutor) driver;
js.executeScript("window.scrollBy(0,1000)"); 
我也试过了

js.ExecuteScript("arguments[0].scrollIntoView();", invite); 

js.ExecuteScript("window.scrollTo(0, document.body.scrollHeight)");

但它不起作用。

在尝试向下滚动页面之前,请确保已完全渲染。 在这里你可以找到一个详细的讨论

页面加载完成后,您可以调用
scroll()
方法,如下所示:

  • 要向下滚动250个pixcels:

    IJavaScriptExecutor js = (IJavaScriptExecutor) driver;
    js.ExecuteScript("window.scrollBy(0,250)", "");
    
  • 要向下滚动整个页面,请执行以下操作:

    IJavaScriptExecutor js = (IJavaScriptExecutor) driver;
    js.ExecuteScript("window.scrollTo(0, document.body.scrollHeight)");
    
  • 要将图元滚动到视图中,请执行以下操作:

    IWebElement element = new WebDriverWait(driver, TimeSpan.FromSeconds(20)).Until(ExpectedConditions.ElementIsVisible(By.CssSelector("css_element")));
    IJavaScriptExecutor js = (IJavaScriptExecutor) driver;
    js.ExecuteScript("arguments[0].scrollIntoView(true);",element);
    

我在另一个线程中发布了一个解决方案

问题


回答

有什么问题?当你尝试它时发生了什么?什么都没发生。IJavaScriptExecutor只是被程序忽略了。这就是问题所在,所以,我需要创建一个方法,例如,它将等待30秒,使站点头部的一部分可见,然后调用scroll()方法?对吗?@MariuszBudzisz您不需要函数,只需要WebDriverWait的一个简单实例。那就可以了。public void Invite(){var span=new TimeSpan(0,0,0,60,0);var wait=new WebDriverWait(driver,span);wait.Until(foo=>foo.FindElement(By.CssSelector(“#seo_h1_tag>a:nth child(1)”).Enabled);js.ExecuteScript(“window.scrollBy(0250)”,“”);wait.Until(foo=>foo.FindElement(By.CssSelector(“button.\u 42ft.\u 4jy0.FriendRequestAdd.addButton.\u 4jy3.\u 517h.\u 51sy”).Enabled);IWebElement invite=driver.FindElement(By.CssSelector(“button.\u 42ft.\u 4jy0.FriendRequestAdd.addButton.\u 4jy3.\u 517h.\u 51sy”);invite.Submit();invite.SendKeys(key.Return)}不起作用。@MariuszBudzisz我对
没有可见性(”#seo\u h1\u tag>a:nth child(1)”
。你想要自动执行的具体手动步骤是什么?1->转到雅吉洛尼亚大学facebook fanpage(“seo\u h1\u tag>a:nth child(1)”)是UJ的徽标,放在fanpage 2的顶部->向下滚动(不起作用)3->按几次“添加朋友”按钮