2016-04-05 14 views
0

ruby​​ + webdriverを使い始めたばかりの小さなスクリプトを作ったので、なぜスクリプトがweb要素をクリックして値を入力しないのだろうと思いますか?Ruby Selenium Webdriver - クリックしないでください。

require 'rubygems' 
require 'selenium-webdriver' 

class Standard_webdriver_ruby 
    driver = Selenium::WebDriver.for :firefox 
    driver.get 'http://demoqa.com/contact/' 
    driver.manage.window.maximize 
    wait = Selenium::WebDriver::Wait.new(:timeout => 5) 

    fillFormData = Array.new('rob', '[email protected]', 'whoop', 'Message content') 

    name_field = driver.find_element :css => ('#wpcf7-f375-p28-o1 > form > p:nth-child(2) > span > input') 
    name_field.click 
    name_field.send_keys(fillFormData[0]) 
    email_field = driver.find_element :css => '#wpcf7-f375-p28-o1 > form > p:nth-child(3) > span > input' 
    email_field.click 
    email_field.send_keys(fillFormData[1]) 
    subject_field = driver.find_element :css => '#wpcf7-f375-p28-o1 > form > p:nth-child(4) > span > input' 
    subject_field.click 
    subject_field.send_keys(fillFormData[2]) 
    message_field = driver.find_element :css => '#wpcf7-f375-p28-o1 > form > p:nth-child(5) > span > textarea' 
    message_field.click 
    message_field.send_keys(fillFormData[3]) 
end 
+0

あなたは何を得ていますか? –

+0

の 'initialize ':引数の数が間違っています(0..2では4)(ArgumentError)def初期化ブロックに追加する必要がありますか? @VigneshParamasivam – Speedychuck

+0

配列の初期化が正しくありません。ルビーを読むhttp://ruby-doc.org/core-2.2.0/Array.html –

答えて

0

あなたは誤って配列をインスタンス化されています

# incorrect 
fillFormData = Array.new('rob', '[email protected]', 'whoop', 'Message content') 

# correct 
fillFormData = ['rob', '[email protected]', 'whoop', 'Message content'] 

# correct, ruby-way 
fillFormData = %w[rob [email protected] whoop Message\ content] 

Array#newは、引数として大きさや配列を期待しています。

関連する問題