是否可以使用页面对象/水豚/Selenium Webdriver 下载包含在网页中的 YAML?

Is it possible to download an YAML contained in a webpage using Page Objects / Capybara / Selenium Webdriver?

我有一个只显示 YAML 文件的网页。 无论如何我可以得到那个 YAML 文件,所以我可以使用黄瓜项目保存它(使用页面对象、水豚和 Selenium Webdriver,它在 Ruby)。

谢谢

所以,我只需要获取正文并将其内容保存到 YAML 文件中。

body = @browser.find_element(:tag_name => 'body')
f = File.new "#{path}/info.yml"
f.write body.text

无需在浏览器中查看 YAML 文件,然后从 HTML 中解析 YAML,您可以直接下载 YAML 文件:

  1. 确定 YAML 文件的位置
  2. 使用 Open-URI 下载文件

假设该页面有一个 link 到 YAML 文件,如:

<a href="invoice.yaml" id="invoice">Invoice Number</a>

然后您可以下载文件并将其保存到磁盘,使用:

require 'capybara'
require 'open-uri'

# Specify where to save the file
save_location = 'C:\some\file\path\name.yaml'

# Go to the page that has the link to the YAML file
page = Capybara::Session.new(:selenium)
page.visit('http://www.your_page.com')

# Determine the location of the YAML file
yaml_link = page.find('#invoice')
yaml_location = yaml_link['href']

# Save the file to disk
File.open(save_location, "w") do |file|
  file.puts open(yaml_location).read
end