2011-12-30 6 views
0

Rubyで約1ヶ月でプログラミング初心者。私は現在Watirと一緒に遊んでいて、シンプルなフォームの塗りつぶしの自動化プロセスを合理化するためにいくつか質問があります。Watir & Ruby;カップルの初心者はどうすればこのことができますか?

現在のコード:私はこれまでに追加したい何

# Start Watir 
require 'watir-webdriver' 
# Open Firefox w/ Watir 
browser = Watir::Browser.new :ff 
# Visit URL w/ browser 
browser.goto("http://website.com") 
# Fill in page name field 
browser.text_field(:name => "page_name").set "page_name1" 
# Fill in password field 
browser.text_field(:name => "password").set "static_password" 
# Click publish button 
browser.button(:value => "Publish").click 
# Puts URL 
puts browser.url 

がある:倍の

  • ループプロセスXXX量(DO、終わり?)
  • はプル(配列?)、同じ名前を2回使用しないでください。
  • ページが公開された後、グループ&はページ名+ URL +パスワード(ハッシュ?)を保存します

これについてのガイダンスは非常に高く評価されています。私はあまり推測していません。正しい方向へのプッシュが必要です。

答えて

2

Rubyには、これを支援できるiterablesという素晴らしい概念があります。

最初の箇条書き。与えられた回数だけループすると、たとえば100となります。そこから約10種類の方法がこの猫を皮膚に、私のお気に入りは、おそらく何をしたいことは、サイト名の配列内のすべての行を一度何かをしている前提のアプローチを変更するだけで、この

100.times do 
    #code lines to be repeated 
end 

第二弾丸、です。

最初に配列を作成し、素晴らしい.eachメソッドを使って配列の各行で何かをする。あなたの配列がpage_namesと命名された場合は、

page_names.each do |name| 
    #code to be repeated, use `name` variable at point you need the value 
    browser.text_field(:name => "page_name").set name 
end 

この.each方法を一緒に使用することができますちょうどあなたがこの

pages.each do |page| 
    code that does something with page.name 
    code that does something with page.password 
end 

のように見えるものをやって終わることができることを意味した項目のいずれかの「コレクション」について3番目の箇条書き、yep Michael(答えを投稿したばかりの人)は、ページネームから始まっているので、ネストされたハッシュですが、これはあなたが知っている部分ですが、URLは何かスクリプトです私はあなたが各ページ名のためにURLとパスワード値を調べることができる外側のハッシュへのキーとしてpage_nameを使用したいと思います。(私はその場合、あなたがランダムにpasswordsを生成するようなことをしていると仮定しているので、それらを保存する必要があります)

上記を組み合わせると、それぞれの.eachとハッシュあなたが戻ってくる最初のことは、キーと値です。あなたが持っていたので、もしパスワードが事前に入力し、ページ名をキーと上述のネストされたハッシュは、あなたのような何かをするかもしれません。この

pages.each do |page_name, pageinfo| 
    browser.goto("http://website.com") 
    browser.text_field(:name => "page_name").set page_name 
    browser.text_field(:name => "password").set pageinfo[:password] 
    browser.button(:value => "Publish").click 
    pages[page_name][:url] = browser.url 
end 

(マーフィーは、私は、これは別の私は上記のいくつかのミスを犯してきた期待する私を愛して与えられましたrubiestは間違いなくスポットになります..幸いなことに、これらの回答を編集して後で修正することができます)

2
  • ループ:xxx.times do ... end
  • ページ名配列:ネストされたハッシュに関するpage_names.each do |page_name| ... end
  • どのように?外部ハッシュのキーとしてURLを使用し、内部ハッシュのキーとして名前とパスワードを使用します。私はどうなるのか
{ "http://foo.com" => { :name => "Foo", :password => "super_s3kr3t" } 
    "http://bar.com" => { :name => "Bar", :password => "also_s3kr3t" } } 
0

ページ名のすべての配列を作成し、それを反復処理です。

pages = ["page_name1", "page_name2", "page_name3"] 

pages.each {|page| browser.text_field(:name => "page_name").set page} 
関連する問題