3 回答

TA貢獻1921條經驗 獲得超9個贊
向下滾動到特定像素:IJavascriptExecutor 在當前選定的框架或窗口的上下文中異步執行 JavaScript。scrollBy(0,1000) -> 滾動到 1000px
IJavascriptExecutor js = (IJavascriptExecutor) driver;
js.executeScript("window.scrollBy(0,1000)");

TA貢獻1854條經驗 獲得超8個贊
最有可能的是,您有一個可滾動(div)元素,您可以將其作為參數(可滾動)傳遞給下面的函數。
public static void scrollDownByPixAmount(IWebElement scrollable, int pixelsToScroll)
{ //assuming your driver var is a static member of same class
(driver as IJavaScriptExecutor).ExecuteScript($"arguments[0].scrollTop = {pixelsToScroll};", scrollable);
}
注意:上面的代碼片段未編譯。

TA貢獻1808條經驗 獲得超4個贊
這是我正在使用的。
public static void scrollDownByPixAmount(string value)
{
var windowScroll = string.Format("window.scrollBy(0,{0})", value);
IJavaScriptExecutor js = driver as IJavaScriptExecutor;
js.ExecuteScript(windowScroll, "");
}
public static void scrollUpByPixAmount(string value)
{
var value1 = "-" + value;
var windowScroll = string.Format("window.scrollBy(0,{0})", value1);
IJavaScriptExecutor js = driver as IJavaScriptExecutor;
js.ExecuteScript(windowScroll, "");
}
public static void scrollToElement(string value)
{
IWebElement val = driver.FindElement(By.XPath(value));
Actions actions = new Actions(driver);
actions.MoveToElement(val);
actions.Perform();
scrollDownByPixAmount("150");
}
添加回答
舉報