Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.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
Ruby 测试上传功率和rspec_Ruby_Rspec_Watir_Watir Webdriver - Fatal编程技术网

Ruby 测试上传功率和rspec

Ruby 测试上传功率和rspec,ruby,rspec,watir,watir-webdriver,Ruby,Rspec,Watir,Watir Webdriver,我正在尝试使用watir/watirwebdriver在网页上测试上传图片/文档,但我尝试的一切都不起作用 例如,在Imgur上上传图片: require 'watir' require 'watir-webdriver' require 'rspec' describe "Upload test" do before(:all) do @browser = Watir::Browser.new :firefox @browser.goto("https://i

我正在尝试使用watir/watirwebdriver在网页上测试上传图片/文档,但我尝试的一切都不起作用

例如,在Imgur上上传图片:

require 'watir'
require 'watir-webdriver'
require 'rspec'

describe "Upload test" do

  before(:all) do 
      @browser = Watir::Browser.new :firefox
      @browser.goto("https://imgur.com/")
  end

  context "Upload test" do
    it "can upload picture" do
      @browser.link(:text, "upload images").click
      @browser.file_field(:name, "img_path").set("img_path")
      @browser.button(:value,"Save").click
    end
  end

  after(:all) do
    @browser.close unless debugging?
  end

end
有一个错误

Failures:

  1) Upload test Upload test can upload picture
     Failure/Error: @browser.link(:text, "upload images").click

     Watir::Exception::UnknownObjectException:
       unable to locate element, using {:text=>"upload images", :tag_name=>"a"}
     # /var/lib/gems/1.9.1/gems/watir-webdriver-0.9.1/lib/watir-webdriver/elements/element.rb:536:in `assert_element_found'
     # /var/lib/gems/1.9.1/gems/watir-webdriver-0.9.1/lib/watir-webdriver/elements/element.rb:508:in `assert_exists'
     # /var/lib/gems/1.9.1/gems/watir-webdriver-0.9.1/lib/watir-webdriver/elements/element.rb:114:in `click'
     # ./PROBA.rb:14:in `block (3 levels) in <top (required)>'

Finished in 11.47 seconds (files took 0.19261 seconds to load)
1 example, 1 failure

Failed examples:

rspec ./PROBA.rb:13 # Upload test Upload test can upload picture
故障:
1) 上传测试上传测试可以上传图片吗
失败/错误:@browser.link(:文本,“上载图像”)。单击
Watir::Exception::UnknownObjectException:
无法使用{:text=>“upload images”,:tag_name=>“a”}定位元素
#/var/lib/gems/1.9.1/gems/watir-webdriver-0.9.1/lib/watir-webdriver/elements/element.rb:536:in'assert\u element\u found'
#/var/lib/gems/1.9.1/gems/watir-webdriver-0.9.1/lib/watir-webdriver/elements/element.rb:508:in'assert\u exists'
#/var/lib/gems/1.9.1/gems/watir-webdriver-0.9.1/lib/watir-webdriver/elements/element.rb:114:在“单击”中
#./PROBA.rb:14:in'block(3层)in'
完成时间为11.47秒(加载文件需要0.19261秒)
1例,1例失败
失败的示例:
rspec./PROBA.rb:13#上传测试上传测试可以上传图片

我曾尝试将其上传到其他网站,但我无法做到。有谁能告诉我使用watir上传文件的正确方法吗?我认为使用“flash”按钮有一些技巧,但我不确定?

该错误表示在页面上看不到带有文本“upload images”的链接,这与文件上载无关。 也就是说,如果文本字段已经可见,您应该执行以下操作:
@browser.file_字段(名称:'img_path')。设置@file_path

错误是在页面上看不到与文件上载无关的文本“upload images”链接。 也就是说,如果文本字段已经可见,您应该执行以下操作:
@browser.file_字段(名称:'img_path')。设置@file_路径

您需要确保定位器准确无误。在您的示例中,您针对的是不存在的文本(即没有与“上载图像”文本的链接)


你需要确保你的定位器是准确的。在您的示例中,您针对的是不存在的文本(即没有与“上载图像”文本的链接)


会发生什么?如果抛出错误,请包括stacktrace。另外,链接到
file\u字段的
set
方法将目录路径(到图像)作为参数。我现在已经包含了error stacktrace..没有与“上载图像”文本的链接。有一个span,tho:
上传图像
和一个带有大写文本的链接:
发生了什么?如果抛出错误,请包括stacktrace。另外,链接到
file\u字段的
set
方法将目录路径(到图像)作为参数。我现在已经包含了error stacktrace..没有与“上载图像”文本的链接。有一个span,tho:
上传图像
和一个带有大写文本的链接:
require 'watir-webdriver'
b = Watir::Browser.new 
b.goto('http://imgur.com/')

b.span(text: "upload images").click

# alternately:
# b.div(class: "selection icon icon-arrow-down").click
# b.link(text: "Upload Images").click