2010-05-25 7 views
5

मेरे पास सी # सेलेनियम परीक्षणों का एक सेट है जिसे एक कुकी को हटाना होगा जिसमें HttpOnly ध्वज सेट है।क्या सी # सेलेनियम परीक्षणों से एचटीपीओली कुकी को हटाने का कोई तरीका है?

दुर्भाग्यवश DefaultSelenium.GetCookie() और DefaultSelenium.DeleteCookie() आदेश कुकी तक पहुंचने में सक्षम नहीं हैं, क्योंकि इसमें यह केवल ध्वज सेट है। मैंने ध्वज को हाथ से हटाकर इसकी पुष्टि की है, और उन तरीकों में से किसी एक को बाद में कॉल की जांच कर रहे हैं, फिर खुशी से कुकी में हेरफेर करने में सक्षम हैं।

क्या सेलेनियम .NET क्लाइंट ड्राइवर के माध्यम से ऐसा करने का कोई और तरीका है?

सभी विचारों का स्वागत है!

उत्तर

4

चूंकि मैं क्लाइंट ड्राइवर के माध्यम से ऐसा करने में असमर्थ था, इसलिए मुझे एक वैकल्पिक विधि मिलनी पड़ी। सौभाग्य से, परीक्षण के तहत वेब ऐप में टेस्ट पेजों का चयन होता है जो सत्र कुकी के साथ बातचीत की अनुमति देता है (केवल वही कुकी जो मैं एक्सेस करने का प्रयास कर रहा था) और इसलिए मैं उन पृष्ठों को स्वचालित करके अपना लक्ष्य प्राप्त करने में सक्षम था।

किसी और के लिए जो इस समस्या का सामना करता है, उसके लिए SO answer here अच्छा है कि कैसे केवल एएसपी.NET में जला दिया जाता है।

इसके अतिरिक्त, this SO answer बताता है कि कैसे एपी के वेब.कॉन्फिग के माध्यम से केवल एचटीपी को छेड़छाड़ की जा सकती है, यह चेतावनी के साथ कि इसे केवल चालू किया जा सकता है, बंद नहीं है।

किसी this workaround की जांच करनी चाहिए, मूल रूप से Global.asax में session_start विधि फेरबदल केवल Http ध्वज को निकाल देते हैं, ताकि ग्राहक स्क्रिप्ट के लिए सुलभ है परीक्षण प्रयोजनों के लिए अपने आवेदन में परिवर्तन करने के लिए तैयार। इस तरह के कामकाज का प्रयोग केवल परीक्षण वातावरण में किया जाना चाहिए, क्योंकि यह सुरक्षा छेद खोलता है जिसे एचटीपी केवल बंद करने के लिए पेश किया गया था - अर्थात् एक्सएसएस भेद्यता। जेफ एटवुड ने here के बारे में एक अच्छा ब्लॉग पोस्ट लिखा था।

+0

धन्यवाद बेन, मुझे बहुत समय बचाया। –