使用watir导航filepicker的代码?

时间:2013-08-26 17:43:36

标签: ruby watir filepicker.io

我正在测试使用filepicker进行文件上传的应用程序:

https://www.inkfilepicker.com

我正在使用watir。

我试过了:

def upload_photos
  $b.link(:text, "Upload Photos").click
  $b.button(:text, "Choose File").click
end

但代码失败了:

`assert_exists': unable to locate element, using {:text=>"Choose File", :tag_name=>"button"} (Watir::Exception::UnknownObjectException

是否可以使用watir自动执行filepicker上传?怎么样?

1 个答案:

答案 0 :(得分:0)

代码

$b.button(:text, "Choose File").click

有两个问题(假设你的filepicker与inkfilepicker演示页面上的相同):

  1. “选择文件”按钮位于iframe中。当谈到帧时,你需要明确地告诉Watir它们。
  2. 选择文件不是常规按钮;它是文件字段()的按钮。这些是使用file_field方法从Watir访问的。单击按钮不支持。相反,有一个set方法可以点击按钮,选择要上传的文件并关闭窗口。
  3. 假设您的应用程序中的文件选择器与inkfilepicker演示页面上的文件选择器相同,您可以执行以下操作:

    require 'watir-webdriver'
    browser = Watir::Browser.new :firefox
    
    # File to upload
    file = 'C:\Users\user\Desktop\stuff.jpeg'
    
    # Go to the demo page, which has a file uploader
    browser.goto 'https://www.inkfilepicker.com/demos/'
    
    # Click the button that opens the file uploader
    browser.button(:class => 'zip-open-button').click
    
    # Wait for the dialog to be displayed
    browser.div(:id => 'filepicker_dialog_container').wait_until_present
    
    # Set the file
    browser.frame(:id => 'filepicker_dialog').file_field(:id => 'fileUploadInput').set(file)