2013-08-25 33 views
12

Webサイトからデータを取得するためにPythonスクリプトを書きました。 thisウェブページの次のボタンをクリックしようとしています。ボタンが定義されている場合:Pythonで次のコードWIHPython Selenium with Phantomjs - Click Failed:ReferenceError:変数が見つかりません

<a id="ctl00_FullRegion_npsGridView_lnkNext" class="nextCol" href="javascript:__doPostBack('ctl00$FullRegion$npsGridView$lnkNext','')">Next</a> 

URL='http://www.nordpoolspot.com/Market-data1/Elspot/Area-Prices/ALL1/Hourly/' 
nextId="ctl00_FullRegion_npsGridView_lnkNext" 
browser=webdriver.PhantomJS('./phantomjs') 
browser.get(URL) 
nextBtn=browser.find_element_by_id(nextId) 
time.sleep(5) 
nextBtn.click() 

Firefoxやクロムwebdriverをを使用したとき、これはうまく動作しますが、Phantomjsで、私は次のエラーを取得します。

selenium.common.exceptions.WebDriverException: Message: u'Error Message => \'Click   
failed: ReferenceError: Can\'t find variable: __doPostBack\'\n caused by Request 

このエラーは、Google検索の多くにアップしていますが、本当にphantomjsを使用するときの方法は、それを修正するたhavnt。

+0

[SO質問](http://stackoverflow.com/questions/16863773/python-selenium-javascript-link-click-fails-実行する)。代わりに 'submit'メソッドを呼び出して教えてください。 – Rohit

+0

既にこれを試しました。しかし、ありがとう。 submitはエラーを出さなかったが、HTMLテーブル全体を空白のままにした。 –

答えて

32

異なるUser-Agentヘッダを送信してみてください。このことから

from selenium.webdriver.common.desired_capabilities import DesiredCapabilities 

user_agent = (
    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) " + 
    "AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.57 Safari/537.36" 
) 

dcap = dict(DesiredCapabilities.PHANTOMJS) 
dcap["phantomjs.page.settings.userAgent"] = user_agent 

browser = webdriver.PhantomJS(desired_capabilities=dcap) 
+0

ありがとう!それは魅力のように働いた:) –

+0

ありがとう男は、この日に働いた... – Illidan

関連する問題