ruby - 使用 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
解决方案
推荐阅读
- java - Java中用于读写操作的可变变量
- cytoscape.js - 我们在哪里可以将我们的事件数据添加到 cytoscape 触发事件中?
- r - 使用grep过滤R中字符串中具有两个或多个模式的行
- java - 如何使用 Java 将 Docusign Embedded 中占位符字段的拖放功能集成到我的 Web 应用程序中?
- batch-file - 在一天中的特定时间之间运行批处理文件
- python - 从本地数据集中为 CNN 创建 TensorFlow 数据集
- google-cloud-platform - 403 请求的身份验证范围不足。使用应用程序默认凭据向谷歌云 NLP API 发出请求时
- c# - MVC 5 在主实体创建期间创建外键实体
- android - 如何在布局上放置方形广告
- laravel - Laravel cName SSL 证书