2016-05-26 5 views
0

をクリックすることで、同じボタンをクリックしないupvoteボタンのHTMLコードです。PythonのセレンPhantomJSは、私がここでのredditにupvoteボタンを</p> <p>をクリックするボットを実装したFirefoxのwebdriverをが

<div class="arrow up login-required access-required" data-event-action="upvote" role="button" aria-label="upvote" tabindex="0"></div> 
 
<div class="score likes">•</div> 
 
<div class="score unvoted">•</div> 
 
<div class="score dislikes">•</div> 
 
<div class="arrow down login-required access-required" data-event-action="downvote" role="button" aria-label="downvote" tabindex="0"></div>

私はクリックするとFirefoxウェブドライバで正常に動作しますが、私がしようとすると、

target = driver.find_element_by_xpath("//div[@class='arrow up login-required access-required']") 
 
target.click() 
 

 

 
OR 
 

 
target = driver.find_element_by_css_selector("div.arrow.up") 
 
target.click()

を使用してupvoteボタンをクリックすることができていますPhantomJSで同じことを実装すると、ブラウザはクリックしません。ここで

は2つのブラウザ

enter image description here

+0

をクリックしたいかを選択するためにインデックスを使用することができ、複数のupvoteフィールドを持つページに対して

driver.execute_script("$('div.arrow.up').click()") 

? –

+0

実際にコードを実行してもエラーは発生しません。 print target.text print target.tag_name 両方のブラウザで同じ応答が返されます –

+0

Okk、テスト用です。ファントムズで2回クリック操作を実行してみてください –

答えて

2

のスクリーンショットは、セレンのexecute_script方法を使用してjQueryのまたはJavaScriptを経由してクリック()操作を実行してくださいです。以下は、クリック操作を実行するサンプルコードです。その後、あなたはあなたが任意のエラーを取得例えば

driver.execute_script("$('div.arrow.up')[0].click()") 
driver.execute_script("$('div.arrow.up')[1].click()") 
driver.execute_script("$('div.arrow.up')[2].click()") 
and so on.. 
+0

これはうまくいきましたか?素晴らしいもの。..おかげでたくさんあなたが今のCSSセレクタを使用している –

+0

、 はどのように我々は、XPath driver.find_element_by_xpath( "//のdiv [する@クラスを持つ要素を選択することができます=『ログイン-必要なアクセスに必要な上矢印』 ] ") 同じページにdiv.arrow.upsがたくさんあることがあるので、時々 –

+0

@AbyAbraham答えを更新しました。 –

関連する問題