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
は、あなたが作業しているあなたはそれを使用している完全なコードを表示することができます。index => 1. –
l = b.link:text => '+ load to card'、:index => 1 –
質問に答えが含まれていない場合は、自分の質問に答える必要があります正しい。 –