2013-08-25 7 views
12

मैं वेबसाइट से कुछ डेटा प्राप्त करने के लिए सेलेनियम वेबड्राइवर का उपयोग करके एक पायथन लिपि लिख रहा हूं, और मैं this वेबपृष्ठ में अगले बटन पर क्लिक करने का प्रयास कर रहा हूं। कहाँ बटन परिभाषित किया गया है:Phantomjs के साथ पायथन सेलेनियम - क्लिक विफल: संदर्भ त्रुटि: वेरिएबल नहीं मिला

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

निम्नलिखित कोड wih अजगर

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 का उपयोग करते समय इसे ठीक करने का तरीका नहीं मिला है।

+0

इस [तो सवाल] से (http://stackoverflow.com/questions/16863773/python-selenium-javascript-link-click-fails- निष्पादन हेतु)। इसके बजाय 'सबमिट' विधि को कॉल करने का प्रयास करें और मुझे बताएं? – Rohit

+0

पहले ही यह कोशिश कर रहा है। हालांकि धन्यवाद। सबमिट ने कोई त्रुटि नहीं दी, लेकिन पूरी HTML तालिका को खाली छोड़ दिया। –

उत्तर

32

एक अलग उपयोगकर्ता-एजेंट हैडर भेजने का प्रयास करें:

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

संबंधित मुद्दे