【问题标题】:How do I can scroll my screen down using selenium? [duplicate]如何使用 selenium 向下滚动屏幕? [复制]
【发布时间】:2020-09-19 19:48:11
【问题描述】:

我正在尝试用 selenium 滚动我的屏幕以捕捉一些元素,但我不能这样做......

我用这个:

等待 driver.executeScript("window.scrollBy(0,450)", "");

还有这个:

const page = await seleniumUtils.getElementByCSS('body'); 等待 seleniumUtils.click(page); 等待 page.sendKeys(Key.COMMAND,Key.DOWN);

没有任何效果!我需要帮助,请:)

【问题讨论】:

    标签: javascript selenium automation ui-automation qa


    【解决方案1】:

    向下滚动:

    WebDriver driver = new FirefoxDriver ();
    JavascriptExecutor jse = (JavascriptExecutor) driver;
    jse.executeScript ("window.scrollBy (0,450)", "");
    

    或者,您可以执行以下操作:

    jse.executeScript ("scroll (0, 450);");
    

    向上滚动:

    jse.executeScript ("window.scrollBy (0, -450)", "");
    

    jse.executeScript ("scroll (0, -450);");
    

    【讨论】:

    • 你知道我怎么用java脚本语言做到这一点吗?不在java中
    【解决方案2】:

    只是一个python解决方案,用于滚动无限滚动的网站。

    随意编辑/重写以供您使用...

    第一步:创建一个“滚动”函数

    def scroll(driver, timeout):
        scroll_pause_time = timeout
    
        # Get scroll height
        last_height = driver.execute_script("return document.body.scrollHeight")
    
        while True:
            # Scroll down to bottom
            driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
    
            # Wait to load page
            time.sleep(scroll_pause_time)
    
            # Calculate new scroll height and compare with last scroll height
            new_height = driver.execute_script("return document.body.scrollHeight")
            if new_height == last_height:
                # If heights are the same it will exit the function
                break
            last_height = new_height
    

    第 2 步:创建“滚动”功能后,您可以这样使用它:

    from selenium import webdriver
    
    driver = webdriver.Firefox() # create driver
    driver.get('www.yoururl.com') # navigate url
    scroll(driver, 5) # use scroll function to scroll the page every 5 second (usefull for infinite scrolling websites)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-06
      • 2016-02-24
      • 2013-04-14
      • 2019-03-11
      相关资源
      最近更新 更多