2017-11-20 9 views
0

Rubyで書かれたボットを使用してファイルをアップロードしようとしています。それは失敗しましたが、シンセックスは良いと思います。最近のFirefoxのアップグレードでは私が仕事をすることができなかったと思います。アイデアはありますか?Seleniumでファイルをアップロードできません - Ruby

私は私のコードを実行するために、これらのリソースを使用:

https://saucelabs.com/resources/articles/best-practices-tips-selenium-file-upload

http://elementalselenium.com/tips/1-upload-a-file

私はここにセレンの最後のバージョンだ:私は最後のバージョンを持って

https://rubygems.org/gems/selenium-webdriver/versions/2.53.0?locale=fr

をgeckodriverここ:

https://rubygems.org/gems/geckodriver-helper/versions/0.0.3

しかし、それは動作しませんでした:WebDriverErrorクローム@://marionnette/content/error.js:235:私はフライホイールによってローカルでローカルモードでワードプレスを使用しています

を発見していない5ファイル。 Firefoxの量子57.0 64-ビット

ここで私の小さなコードです:それは動作しなかったので、私は自分のファイルをアップロードするために他の方法を探していた

require 'selenium-webdriver' 
require 'rspec/expectations' 
include RSpec::Matchers 

def setup 
    @driver = Selenium::WebDriver.for :firefox 
end 

def teardown 
    @driver.quit 
end 

def run 
    setup 
    yield 
    teardown 
end 

run do 
    @driver.get "http://mywebsite.dev/wp-admin/profile.php" 
    inputlogin = @driver.find_element :id => "user_login" 
    inputpwd = @driver.find_element :id => "user_pass" 

    inputlogin.send_keys "mylogin" 
    inputpwd.send_keys "mypwd" 
    @driver.find_element(:id, "wp-submit").click 

    @driver.get "http://mywebsite.dev" 
    element = @driver.find_element(:id, 'uploadInput1') 
    element.send_keys "C:\\path\\image.jpg" 

    # @driver.find_element(id: 'btn-submit').click 

    puts "Successful on #{@driver.title}" 
end 

はので、私はAutoItのを使用してみましたが、私は失敗しました。..ここに例があります。

http://www.maisasolutions.com/blog/How-to-upload-images-using-selenium-webdriver-with-ruby

また、この解決策は(ダウンロード、インストール、非reproductabilityなど)は非常に重く、適切なコードであるように思われません。

ありがとうございました。

答えて

0

ページ上のファイルフィールドを見つけて、そのパスを指定してファイルを添付します。 ファイルフィールドは、その名前、ID、またはラベルテキストで検索できます。ここで

page.attach_file(locator, '/path/to/file.png') 

、ロケータは、ファイルアップロードパスのCSS IDまたはクラスになります。

関連する問題