Ruby Selenium Webdriver - 不要点击?

时间:2016-04-05 10:41:16

标签: ruby selenium

刚开始使用ruby + webdriver,我做了一个小脚本,我想知道为什么脚本不会点击web元素然后输入值?

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', 'rob@hotmail.co.uk', '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

1 个答案:

答案 0 :(得分:0)

您错误地实例化了数组:

# incorrect
fillFormData = Array.new('rob', 'rob@hotmail.co.uk', 'whoop', 'Message content')

# correct
fillFormData = ['rob', 'rob@hotmail.co.uk', 'whoop', 'Message content']

# correct, ruby-way
fillFormData = %w[rob rob@hotmail.co.uk whoop Message\ content]

Array#new期望大小或数组作为参数。