2017-01-16 6 views
2

をクリックし、私は問題を抱えている:のPython +セレン+ PhantomJsは= =をクリックしない(しかし、Firefoxが

ここ

はFirefoxでサイト上のリンクをクリックするコードです。これは動作しますクリック しかし、中に同じコード。。。クリックページに行くではなく。 PhantomJS問題を解決してください。事前に感謝

from selenium import webdriver 
import time 
browser=webdriver.PhantomJS() 
browser.get('http://nnmclub.to') 
time.sleep(10) 
browser.find_element_by_xpath("//a[contains(@href,'www.marketgid.com')]").click() 
time.sleep(10) 
browser.quit() 
+1

クリックがなかったことをどのように知っていますか?ヘッドレスブラウザです。少なくとも、ページが変更されたかどうかをチェックするために 'browser.get_screenshot_as_file(path_to_file)'を追加してください。 – Andersson

+0

私はこの行をコードで見逃しました。私はそれを使用します。 "browser.get_screenshot"で、彼はクリックされていないことを知っています。ちょうどページをロードしたが、リンクの後に完了していない。 –

答えて

2

は、あなたがクリックしようとしているリンクは、(このリンクは新しいタブで開くべきであることを意味している属性target="_blank"を持っていますウィンドウ)。実際にクリックしたことを確認するには、次のコードで新しいウィンドウに切り替えるようにしてください:

from selenium import webdriver 
import time 

browser=webdriver.PhantomJS() 
browser.get('http://nnmclub.to') 
current = browser.window_handles[0] 
time.sleep(10) 
browser.find_element_by_xpath("//a[contains(@href,'www.marketgid.com')]").click() 
time.sleep(10) 
newWindow = [window for window in browser.window_handles if window != current][0] 
browser.switch_to.window(newWindow) 
browser.get_screenshot_as_file(path_to_file) 
browser.quit() 
+0

はい、それは働いた!!ありがとう、アンダーソン! –

+0

ようこそ。あなたの問題を解決した場合、この回答に「受け入れられる」と記入してください。 – Andersson

+0

Andersson、ありがとうございます!もう1つの質問。教えてください。スクリプト内のPhantomJSのプロキシを介して動作させるにはどうすればいいですか? –

関連する問題