2016-07-13 5 views
1

Rubyに自動的にクーポンを貼り付けるスクリプトを書こうとしています。このページビーイング: Stop and Shop Coupons Page私はRubyを学び、Watirを使ってクーポンクリッピングプロジェクトを作成しています。

私がこれまでのブラウザ(Firefoxの)を開き、私のアカウントにクーポンページに移動しますが、一つだけのクーポンをクリックし、スクリプトが閉じますされますが何をしています。 whileループを試しましたが、私は試してみましたか?私はオンラインで見つけられたすべてのものを手に入れることができ、「カードにロードする」ボタンのすべてのインスタンスに対して連続してクリップすることはできません。

しばらく前にサイトを使用してPublixウェブサイトのスクリプトを書いた: Publix Coupon Page これはうまくいきました。 「クリップは、」私はちょうど使用するには、次の

b.buttons(:class => 'dc-clip-btn').each do |b| 
    b.click 
    sleep 2 
end 

時々ページをクリップの上にハングアップすると、スクリプトが終了しますので、私は「スリープ」を必要としていました。これをStop & Shopページで試してみましたが、全く動作しませんでした。私は 'ボタン'を 'リンク'に、 ':クラス'を ':テキスト'に変更して、クリップを取得する必要がありました。

require 'rubygems' 
require 'watir' 
require 'watir-webdriver' 

b = Watir::Browser.new :firefox, :profile => 'default' 
b.goto 'https://stopandshop.com/dashboard/coupons-deals/#/coupons-and-deals/exclusive-coupons' 

l = b.link :text => '+ load to card' 

sleep 3 

l.when_present.click 

私は唯一つのインスタンス上で動作しますどの

l.exists? 
l.click 

を試してみました。私は上記のようにwhen_presentを真似しました。私はl.clickを行うためにwhileループを使用しました。私はこの時点で私のリソースと、私の忍耐を使い果たしました。どんな助けでも大変感謝しています。ありがとうございました!

EDIT:インデックス=> 1を行の末尾に、次に

l = b.link :text => '+ load to card', :index => 1 

は、それが配列内のその特定の場所に移動していることをクリックします。

私は私が含まれている場合は検出されませんでしたリンク。だから、私はこの時点で、配列をたどってそれらのリンクをすべてクリックしようとする助けが必要だと思う。

EDIT 2:提案がうまくいったかどうかを投稿できるようにしたいと思っていましたが、突然サイトが読み込まれたときにいつものようにログインしていましたが、突然、理由とリダイレクト

https://stopandshop.com/?DPSLogout=true 

EDIT 3:編集2の問題が修正されました。これは私のブラウザのアクセス許可/クッキーの問題でした。しかし、いずれの提案も機能していません。

SOLUTION

while l.exists? do 
    l.click 
    l = b.link :text => '+ load to card', :index => 0+1 
end 
+0

は、あなたが作業しているあなたはそれを使用している完全なコードを表示することができます。index => 1. –

+0

l = b.link:text => '+ load to card'、:index => 1 –

+0

質問に答えが含まれていない場合は、自分の質問に答える必要があります正しい。 –

答えて

0

あなたがそうのようなリンクを反復処理することができるはずです。

coupons = b.links(text: '+ load to card') 
coupons.each do |coupon| 
    coupon.click 
end 
+0

ループ内に 'b.back'が必要な場合を除いて、動作するはずです。 –

+0

だから、私はこれをそのままにして、全く動かない。なぜ私は分からない。しかし、私がクリップに少なくとも1つのクーポンを手に入れることができた前に、今はそれがクリップされず、スクリプトが終了しています。私は何かを忘れていますか? –

+0

あなたのコメントの限られた情報に基づいて実装した内容を伝えることはできません。 –

関連する問題