Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 要使用滚动条selenium webdriver向下移动吗_C#_Selenium - Fatal编程技术网

C# 要使用滚动条selenium webdriver向下移动吗

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

我需要使用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;
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的像素数)。释放()。执行()

这段代码对我有效,并进行了以下更正

  • 具有正确的xpath。我单击inspect元素,右键单击xpath元素并复制
  • 在clickandHold cast中添加WebElement
  • 还要确保numberOfPixelsToDragTheScrollbarDown与要向下拖动的确切像素相匹配

  • 它很有魅力。谢谢你的代码。

    你想找的元素是什么?你能为此提供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;