2013-08-25 26 views
12

Bir web sitesinden veri almak için selenyum webdriver'ı kullanarak bir python betiği yazarım ve this web sayfasındaki sonraki düğmeyi tıklatmaya çalışıyorum. piton Firefox veya krom Webdriver kullanılırken bu iyi çalışıyorPython Selenium ile Phantomjs - Click Başarısız: ReferenceError: Değişken bulamıyor

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() 

aşağıdaki kodu algısında

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

ama Phantomjs ile aşağıdaki hatayı alıyorum: düğme tanımlanır yerde.

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

Bu hata google aramalarında bir sürü içinde gelir ama gerçekten phantomjs kullanırken bir yol düzeltmek bulundu havnt.

+0

(http://stackoverflow.com/questions/16863773/python-selenium-javascript-link-click-fails- to-yürütme). Bunun yerine 'submit' yöntemini çağırmayı deneyin ve bana haber verin. – Rohit

+0

zaten bunu denedi. yine de teşekkürler. Gönderme bir hata vermedi, ancak tüm html tablosunu boş bıraktı. –

cevap

32

farklı bir User-Agent göndermeyi deneyin: Bu [SO soruya] Gönderen

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

teşekkürler! Bir çekicilik gibi çalıştı :) –

+0

Teşekkürler adam, bu günlerde çalıştı ... – Illidan

İlgili konular