C# 要使用滚动条selenium webdriver向下移动吗
我需要使用SeleniumWebDriver在网页上使用滚动条向下移动 我使用了以下代码C# 要使用滚动条selenium webdriver向下移动吗,c#,selenium,C#,Selenium,我需要使用SeleniumWebDriver在网页上使用滚动条向下移动 我使用了以下代码 Actions dragger = new Actions(driver); WebElement draggablePartOfScrollbar = driver.findElement(By.xpath("/html/body/section[2]/div/div[2]/div/div/div")); int numberOfPixelsToDragTheScrollbarDown = 5000; d
Actions dragger = new Actions(driver);
WebElement draggablePartOfScrollbar = driver.findElement(By.xpath("/html/body/section[2]/div/div[2]/div/div/div"));
int numberOfPixelsToDragTheScrollbarDown = 5000;
dragger.moveToElement(draggablePartOfScrollbar).clickAndHold().moveByOffset(0,numberOfPixelsToDragTheScrollbarDown).release().perform();
它仍然没有向下移动…xpath正在根据滚动条的位置进行更改…如果您试图通过向下滚动来定位某个元素,下面的代码将滚动,直到该元素显示在视图中
WebElement element = driver.findElement(By.id("id_of_element"));
((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(true);", element);
Thread.sleep(500);
//do anything you want with the element
我的代码是用python编写的。希望它能对您有所帮助,您可以将其复制到java中
actionChains = ActionChains(driver)
option=driver.find_element_by_class_name("mCSB_dragger_bar")
actionChains.click_and_hold(option).perform()
actionChains.move_by_offset(0,5000).perform()
actionChains.release()
上述代码可以简化为
actionChains = ActionChains(driver)
option=driver.find_element_by_class_name("mCSB_dragger_bar")
actionChains.click_and_hold(option).move_by_offset(0,5000).release().perform()
借
对于向上滚动:
scrollUp.sendKeys(Keys.PAGE_DOWN);
对于Java,代码如下所示:
public void moveOverElement(WebElement element)
{
Actions actions = new Actions(driver);
actions.clickAndHold(element).moveByOffset(0,5000).release().perform();
}
对于定义WebElement,对于WebElement,您只需定义路径:
@FindBy (xpath = ".//*[contains(@class, 'link-name') and text() = 'QAEbox']")
private WebElement createdQABoxElement;
动作拖动器=新动作(驱动程序); WebElement draggablePartOfScrollbar=driver.findelelement(By.xpath(“/html/body/section[2]/div/div[2]/div/div/div”); int numberOfPixelsToDragTheScrollbarDown=5000; dragger.moveToElement(ScrollBar的DragablePart)。单击并按住(ScrollBar的DragablePart)。moveByOffset(0,绘制ScrollBardown的像素数)。释放()。执行() 这段代码对我有效,并进行了以下更正
它很有魅力。谢谢你的代码。你想找的元素是什么?你能为此提供html吗
WebElement=driver.findElement(By.id(“id_of_元素”))代码>。这里应该提到文本区域的id。你做了吗?Amith003的回答基本上是正确的。您还可以使用JavaScriptExecutor发送Key.DOWN消息,通过键盘进行页面向下搜索。我就是这样做的,因为我也不能让scrollIntoView工作。。。
public void moveOverElement(WebElement element)
{
Actions actions = new Actions(driver);
actions.clickAndHold(element).moveByOffset(0,5000).release().perform();
}
@FindBy (xpath = ".//*[contains(@class, 'link-name') and text() = 'QAEbox']")
private WebElement createdQABoxElement;