2012-11-23 14 views
10

मैंने फ़ैंटॉमजेएस एप्लिकेशन के कुछ हिस्सों को लिखा है। मैं ऐसी वेबसाइट पर पार्सिंग कर रहा हूं जहां मैं एक फॉर्मूलेर के लिए उपयोगकर्ता नाम और पासवर्ड लिख रहा हूं। इसके बाद मुझे एक लिंक पर क्लिक करना होगा। जबकि मैं इस त्रुटि मिलती है:फ़ैंटॉमजेएस पृष्ठ पर एक लिंक पर क्लिक करें

TypeError: 'undefined' is not a function (evaluating 'myLink.click()') 

    phantomjs://webpage.evaluate():11 
    phantomjs://webpage.evaluate():22 
    phantomjs://webpage.evaluate():22 

यह मेरा PhantomJS कोड है:

if(document.getElementById("m_Content_submitbtn2").getAttribute('data-role') == "button"){ 
     var myLink = document.getElementById("m_Content_submitbtn2"); 
    myLink.click(); 
} 

और ये मेरे लिंक है:

<div class='button'><a href="#" data-role="button" tabindex='0' onclick='WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;m$Content$submitbtn2&quot;, &quot;&quot;, true, &quot;&quot;, &quot;&quot;, false, true)); return false;' id="m_Content_submitbtn2">Log ind</a></div>&nbsp; 
+1

[PhantomJS के संभावित डुप्लिकेट; एक तत्व पर क्लिक करें] (http://stackoverflow.com/questions/15739263/phantomjs-click-an-element) – Bergi

उत्तर

6

आप एक <a> पर click() विधि का उपयोग करने का प्रयास कर रहे तत्व जो डिफ़ॉल्ट रूप से सभी ब्राउज़र में समर्थित नहीं है। इसके बजाय this जैसे कुछ का उपयोग करने का प्रयास करें, जहां myLink.click(); के बजाय आपको eventFire(myLink, 'click'); करना होगा।

+3

यह सिर्फ मुझे देता है: संदर्भ त्रुटि: चर नहीं मिल सकता: eventFire – mikkeljuhl

+0

वहां नहीं देखा गया कि वहां एक लिंक था । माफ़ कीजिये। – mikkeljuhl

+0

सहायता। इसे phantomjs में उपयोग करने और संदर्भ त्रुटि प्राप्त करने की कोशिश कर रहा है इससे कोई फर्क नहीं पड़ता। –

2

या jQuery शामिल हैं और की तरह कुछ कार्य करें:

var page = require('webpage').create(); 
page.open('http://www.sample.com', function() { 
    page.includeJs("http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js", function() { 
    page.evaluate(function() { 
     $("button").click(); 
    }); 
    phantom.exit() 
    }); 
}); 
+0

'पृष्ठ.includeJS' के लिए ठीक से काम करता था, लेकिन मुझे' संदर्भ त्रुटि: चर नहीं मिल सकता: $ 'उसके बाद। – loretoparisi

+0

... ठीक है, मुझे 'document.evaluate' के साथ 'दस्तावेज़' पृष्ठ संदर्भ पर स्विच करने की आवश्यकता है। उस बिंदु पर इसे '$' मिलता है लेकिन नेविगेशन नहीं होता है - मुझे 'ऑनविगेशन रिवेस्टेड' में कॉलबैक नहीं मिलता है – loretoparisi

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