首页 > 解决方案 > 使用 chromedriver 和 ruby​​ 更改 chrome 上的下载目录

问题描述

我正在尝试使用 chromedriver 创建一个 ruby​​ 脚本,该脚本访问哈希中的 google 驱动器中的每个链接,并下载链接中存在的文件,创建相同的文件夹。我无法在本地创建文件夹并将其设置为 chrome 应保存文件的文件夹。到目前为止,这是我尝试仅下载第一个文件的代码:

require 'selenium-webdriver'
Selenium::WebDriver::Chrome::Service.driver_path="C:/Ruby27-x64/bin/chromedriver.exe"
@driver = Selenium::WebDriver.for :chrome

def get_urls
    urls = {
        Y: 'https://drive.google.com/drive/folders/1kBWbwinwOJCpaaHLmTbxk6fIEKmy0Sys',
        Z: 'https://drive.google.com/drive/folders/1gS_KRdzyC5YKK7cRvN-YkofbzZ9OPNEe'
    }
end

def get_name_folders folders
    @folder = []
    folders.each do |folder|
        @folder.push(folder.text)
    end
    @folder
end

def download
    urls = get_urls
    urls.each do |letter, url|

        #######
        # code to define the download directory with the name of the hash key/letter variable
        #######

        @driver.get url
        folder_elements = @driver.find_elements(:class, 'Q5txwe')

        # getting the name of the folders
        name_folders = get_name_folders folder_elements

        #######
        # code to define the download directory with the name of the google chrome directory
        #######

        # enter the first folder
        folder_elements[1].click
        
        ebook_elements = @driver.find_elements(:class, 'l-u-Ab-zb ta-gc-np-Nd')

        @driver.action.move_to ebook_elements[1]
        download_icon_elements = @driver.find_elements(:class, 'akerZd')

        # downloading the first file
        download_icon_elements[1].click
    end
end

download

标签: rubyseleniumgoogle-chromedirectorywatir

解决方案


推荐阅读