सेलेनियम दस्तावेज के अनुसार, वेबड्राइवर क्लाइंट और ब्राउज़र के बीच बातचीत JSON Wire Protocol के माध्यम से की जाती है। मूल रूप से क्लाइंट, पायथन, रूबी, जावा जो भी लिखा है, वेब ब्राउज़र पर जेएसओएन संदेश भेजता है और वेब ब्राउजर जेएसओएन के साथ भी प्रतिक्रिया देता है।निगरानी जेएसओएन वायर प्रोटोकॉल लॉग
क्या सेलेनियम परीक्षण चलाते समय इन JSON संदेशों को देखने/पकड़ने/लॉग करने का कोई तरीका है?
उदाहरण (अजगर में) के लिए:
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('http://google.com')
driver.close()
मैं देखना क्या JSON संदेशों ग्राहक और एक ब्राउज़र webdriver अजगर सेलेनियम के बीच जा रहे हैं जब मैं ड्राइवर का दृष्टांत (इस मामले क्रोम में) हैं: webdriver.Chrome()
, जब मुझे एक पृष्ठ मिल रहा है: driver.get('http://google.com')
और जब मैं इसे बंद कर रहा हूं: driver.close()
।
FYI करें, #SFSE: Stripping Down Remote WebDriver ट्यूटोरियल में, यह स्थानीय मशीन जहां स्क्रिप्ट चल रही है और दूरस्थ सेलेनियम सर्वर के बीच नेटवर्क यातायात पर कब्जा करने के माध्यम से किया जाता है।
मैं प्रश्न Python
विशिष्ट के रूप में टैग कर रहा हूं, लेकिन वास्तव में किसी भी पॉइंटर्स से खुश होगा।
[सेलेनियम वेबड्राइवर एपीआई दस्तावेज] (http://selenium-python.readthedocs.org/api.html) को देखकर पुस्तकालय का उपयोग करने और इसे JSON साझा करने का कोई सुलभ तरीका प्रतीत नहीं होता है उत्पादन/प्राप्त। मैं शायद नेटवर्क यातायात को पकड़ने की कोशिश करने की ओर झुकना चाहूंगा। – ydaetskcoR
@ydaetskcoR धन्यवाद, यह वही है जो मैं वर्तमान में सोच रहा हूं, हालांकि यह सुनिश्चित नहीं है कि क्या यह करने योग्य है यदि क्लाइंट और वास्तविक ड्राइवर दोनों स्थानीय मशीन पर हैं। यदि अन्य विकल्प हैं तो समुदाय से पूछने का फैसला किया। – alecxe
यह शायद गलत दृष्टिकोण है लेकिन आप हमेशा एक वीएम स्पिन कर सकते हैं और उस पर सेलेनियम सर्वर डाल सकते हैं ताकि आप वर्चुअल नेटवर्क परत पर नेटवर्क यातायात को कैप्चर कर सकें। – ydaetskcoR