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