2
新红宝石与硒,但基本上是我想要做的就是通contact['rob', 'email', 'subject', 'message']
到Ruby将值传入方法? webdriver的
def contact(name="Default", email="Default", subject="Default", message="Default")
@name = name
@email = email
@subject = subject
@message = message
,然后如果值匹配运行,下面的代码:
if(name == 'rob' && email == 'email' && subject == 'subject' && message == 'message')
name_field = driver.find_element :css => ('#wpcf7-f375-p28-o1 > form > p:nth-child(2) > span > input')
name_field.click
name_field.send_keys(name)
email_field = driver.find_element :css => '#wpcf7-f375-p28-o1 > form > p:nth-child(3) > span > input'
email_field.click
email_field.send_keys(email)
subject_field = driver.find_element :css => '#wpcf7-f375-p28-o1 > form > p:nth-child(4) > span > input'
subject_field.click
subject_field.send_keys(subject)
message_field = driver.find_element :css => '#wpcf7-f375-p28-o1 > form > p:nth-child(5) > span > textarea'
message_field.click
message_field.send_keys(message)
else
puts 'failed'
end
end
全码:
require 'rubygems'
require 'selenium-webdriver'
class Standard_web_driver_test2
driver = Selenium::WebDriver.for :firefox
driver.get 'http://demoqa.com/contact/'
driver.manage.window.maximize
wait = Selenium::WebDriver::Wait.new(:timeout => 5)
def contact(name="Default", email="Default", subject="Default", message="Default")
@name = name
@email = email
@subject = subject
@message = message
if(name == 'rob' && email == 'email' && subject == 'subject' && message == 'message')
name_field = driver.find_element :css => ('#wpcf7-f375-p28-o1 > form > p:nth-child(2) > span > input')
name_field.click
name_field.send_keys(name)
email_field = driver.find_element :css => '#wpcf7-f375-p28-o1 > form > p:nth-child(3) > span > input'
email_field.click
email_field.send_keys(email)
subject_field = driver.find_element :css => '#wpcf7-f375-p28-o1 > form > p:nth-child(4) > span > input'
subject_field.click
subject_field.send_keys(subject)
message_field = driver.find_element :css => '#wpcf7-f375-p28-o1 > form > p:nth-child(5) > span > textarea'
message_field.click
message_field.send_keys(message)
else
puts 'failed'
end
end
contact['rob', 'email', 'subject', 'message']
end
我相信有这样做的更简单的方法,但只是试图习惯于使用代码块。
错误信息:“:未定义的局部变量或方法'接触”的Standard_web_driver_test2:类(NameError)之前
新代码与全局变量:
require 'rubygems'
require 'selenium-webdriver'
class StandardWebdriverTest2
@@driver = Selenium::WebDriver.for :firefox
@@driver.get 'http://demoqa.com/contact/'
@@driver.manage.window.maximize
wait = Selenium::WebDriver::Wait.new(:timeout => 5)
def self.contact(name="Default", email="Default", subject="Default", message="Default")
@name = name
@email = email
@subject = subject
@message = message
if(name == 'rob' && email == 'email' && subject == 'subject' && message == 'message')
name_field = @@driver.find_element :css => ('#wpcf7-f375-p28-o1 > form > p:nth-child(2) > span > input')
name_field.click
name_field.send_keys(name)
email_field = @@driver.find_element :css => '#wpcf7-f375-p28-o1 > form > p:nth-child(3) > span > input'
email_field.click
email_field.send_keys(email)
subject_field = @@driver.find_element :css => '#wpcf7-f375-p28-o1 > form > p:nth-child(4) > span > input'
subject_field.click
subject_field.send_keys(subject)
message_field = @@driver.find_element :css => '#wpcf7-f375-p28-o1 > form > p:nth-child(5) > span > textarea'
message_field.click
message_field.send_keys(message)
else
puts 'failed'
end
end
contact('rob', 'email', 'subject', 'message')
end
谢谢:)我没有错误没有在控制台运行时,但是,name_field.send_keys(名称)值没有被推入所以必须是somethi ng else – Speedychuck
yes这是网页驱动程序功能性问题.....建议请检查name_filed正在选择正确发送密钥 –
网页驱动程序代码在方法模块之外工作,但一旦进入内部不运行:(@ Rajarshi Das – Speedychuck