2017-11-20 6 views
0

Ich versuche eine Datei mit einem in Ruby geschriebenen Bot hochzuladen. Es hat versagt, aber ich denke, mein Synthax ist gut. Ich nehme an, dass das kürzlich erfolgte Upgrade von Firefox mich dazu veranlasst hat, den Job zu machen. Hast du bitte eine Idee?Ich kann keine Datei mit Selenium hochladen - Ruby

benutzte ich diese Ressourcen meinen Code zu tun:

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

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

ich die letzte Version von Selen hier bekam:

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

bekam ich die letzte Version von geckodriver hier:

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

Aber es hat nicht funktioniert: WebDriverError @ chrome: //marionnette/content/error.js: 235: 5 Datei nicht gefunden

ich durch Schwungrad Wordpress im lokalen Modus mit lokalen bin mit . Firefox Quantum 57,0 64bits

Hier ist mein kleiner Code:

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 

Wie es nicht funktioniert hat, war ich für einen anderen Weg, um meine Datei zu laden, so habe ich versucht AutoIT verwenden, aber ich nicht .. . Hier ist ein Beispiel.

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

Außerdem ist diese Lösung sehr schwer (Downloads, Installationen, nicht Reproduzierbarkeit etc.) und zu tun scheint nicht richtiger Code zu sein.

Vielen Dank für Ihre Hilfe.

Antwort

0

Suchen Sie ein Dateifeld auf der Seite und fügen Sie eine Datei mit ihrem Pfad hinzu. Das Dateifeld kann über seinen Namen, ID oder Beschriftungstext gefunden werden.

Hier ist Locator CSS ID oder Klasse der Datei Upload-Pfad.

Verwandte Themen