2015-05-15 5 views
5

मैं सेलेनियम का उपयोग कर पृष्ठ सामग्री प्राप्त करने के लिए कुछ अज्ञात तृतीय पक्ष वेबसाइटों पर अनुसंधान और विकास कर रहा हूं।यदि कोई साइट अजाक्स का उपयोग कर रही है तो सेलेनियम वेबड्राइवर से कैसे जांचें?

मुझे यह कैसे पता होना चाहिए कि वेबसाइट अजाक्स आधारित या गैर-अजाक्स आधारित है या नहीं। मुझे आईडी या टैग नाम का उपयोग करने के लिए अज्ञात वेबसाइट के अंदर कोई भी डेटा नहीं पता है, तो मुझे इसे अजाक्स के आधार पर कैसे देखना चाहिए या नहीं।

+0

कृपया http://stackoverflow.com/help/how-to-ask पढ़ें और आपने जो प्रयास किया है उसके बारे में अधिक जानकारी प्रदान करें और – Dude

+2

वास्तव में काम नहीं किया, यह एक दिलचस्प समस्या है। – alecxe

+1

"अजाक्स आधारित" के साथ आपका क्या मतलब है, अगर कुछ AJAX कॉल मौजूद हैं या यदि यह एक सरल पृष्ठ एप्लिकेशन है? उदाहरण के लिए (कोणीय जेएस) समस्या यह है कि AJAX का उपयोग करके बहुत सारे दृष्टिकोण हैं। यह मेरी राय में मुख्य बाधा है। कोई पैटर्न नहीं है .. –

उत्तर

1

यदि मैं आप थे, तो मैं प्रॉक्सी स्थापित करता था और इसके माध्यम से सभी WebDriver यातायात को रूट करता था। प्रॉक्सी में, प्रत्येक अनुरोध के लिए मैं अनुरोध हेडर पार्स और यदि आप, आप (विश्वास का उचित राशि के साथ) का कहना है कि कर सकते हैं हैडर

X-Requested-With = XMLHttpRequest 

Reference

के लिए विचार करेंगे, कि आप Ajax लागू किया था । कुछ कोने के मामले हो सकते हैं जिन्हें आप याद करेंगे, लेकिन इससे आपको उनमें से अधिकतर मिलना चाहिए।

वैसे भी, आपको यह विचार करने की आवश्यकता है कि पेज लोड पर अजाक्स कॉल नहीं किए जा सकते हैं, इसके लिए उन कॉल को ट्रिगर करने के लिए उपयोगकर्ता इंटरैक्शन की आवश्यकता हो सकती है।

आप WebDrivers getPageSource() विधि का उपयोग कर यह से निपटने और उत्पादन $.get( और $.post( और $.ajax( और अन्य सभी लोगों को है कि आप के साथ आ सकते हैं जैसे पैटर्न की तलाश करने के लिए कुछ विधि लागू करने का प्रयास कर सकते हैं।

प्रॉक्सी स्थापित करने के बारे में आपको this answer में भी रुचि हो सकती है।

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