2015-09-30 7 views
5

पता लगाएँ कि यह पता है कि सीएसएस से भरा श्रृंखला मैं जैसे तरीकों में पूछ रहा हूँ है वास्तव में अच्छा होगा:विकास और डिबगिंग प्रयोजनों के लिए चांदा तत्व सीएसएस श्रृंखला

divElm.element(by.css("article")).element(by.css("tbody > tr")).then(function(elm) { 
    // is there a way to know here what is the "CSS chain" of 'elm'? 
}); 

अगर मैं डिबग elm मैं देख रहा हूँ एक locator संपत्ति के साथ:

locator_: { using: 'css selector', value: 'tbody > tr' }, 

लेकिन वह केवल श्रृंखला में पिछले तत्व के लोकेटर है।

यह सभी के लिए वास्तव में उपयोगी होगा, जैसे: divElm, article, tbody > tr इस तरह से मैं इस पृष्ठ पर मैन्युअल रूप से डीबग करने में सक्षम हूं यह देखने के लिए कि तत्व वास्तव में मौजूद है या नहीं।

अद्यतन: क्या मैं वास्तव में जरूरत है, जब एक कोणमापक चयनकर्ता उम्मीद विफल रहता है (जैसे isPresent() विधि का उपयोग कर), त्रुटि मैं केवल मिल श्रृंखला में पिछले चयनकर्ता को दर्शाता है। अगर पूरी श्रृंखला दिखायी जाती है तो यह वास्तव में आसान होगा।

+1

मुझे नहीं लगता कि यह संभव है, क्योंकि माता-पिता तत्व प्राप्त करना अन्य तरीकों से भी प्राप्त किया जा सकता है। यहां तक ​​कि सेलेनियम में भी ऐसी विधि शामिल नहीं है - [यहां इसका एक लिंक है] (https://groups.google.com/forum/#!topic/webdriver/UDdU8FkQTSo)। हालांकि आप मूल तत्व प्राप्त करने के लिए xpath का उपयोग कर सकते हैं। [यहां बताया गया है] (http://stackoverflow.com/a/18001659/4180674) –

+0

क्या आप प्रोटोकैक्टर में तत्वों या HTML दस्तावेज़ के साथ पूर्ण DOM पथ तक पहुंचने के लिए उपयोग किए गए सटीक मान चाहते हैं? –

+0

क्षमा करें, शायद सवाल उलझन में था। मैं तत्वों तक पहुंचने के लिए प्रोटैक्टर में उपयोग किए गए सटीक चयनकर्ता/मूल्य चाहता हूं, पूर्ण डोम पथ नहीं। – hhaamm

उत्तर

0

आप अपने ब्राउज़र, यह क्या है कि उत्कृष्ट लेख में सुझाव दिया है करना है सबसे आसान तरीका से सही एक सीएसएस श्रृंखला परीक्षण करना चाहते हैं: http://yizeng.me/2014/03/23/evaluate-and-validate-xpath-css-selectors-in-chrome-developer-tools/

इस तरह आप इसे अब और डिबग करने की जरूरत नहीं है , आप शुरुआत से ही जानते हैं कि आपका चयनकर्ता क्या मिलान करता है (और यह क्या नहीं करता)

+0

मैं Google/एफएफ डेवलपर टूल्स से परिचित हूं। समस्या यह है कि मुझे आमतौर पर पूरी सीएसएस श्रृंखला का पुनर्निर्माण करना पड़ता है क्योंकि मेरे पास ऑब्जेक्ट्स का पदानुक्रम है, उदा। पेज> सेक्शन> हेडर, इसलिए मुझे माता-पिता की तलाश करनी है ... आदि तो मैं वास्तव में क्या चाहता हूं, जब एक उम्मीदवार विफल हो जाता है क्योंकि एक चयनकर्ता, सभी प्रोटैक्टर चयनकर्ताओं को त्रुटि में प्रदर्शित होता है और न केवल श्रृंखला में अंतिम चयनकर्ता होता है। – hhaamm

+0

एक और विकल्प है अपने तत्वों में आईडी जोड़ना। इस तरह आप जटिल चयनकर्ताओं के साथ और अधिक समय बर्बाद नहीं करेंगे। – alcfeoh

0

समस्या यह है कि, अंतिम तत्व त्रुटि उत्पन्न होता है, इसलिए यदि आप पूर्ण लोकेटर को देखना चाहते हैं, तो तत्व का चयन करने का प्रयास करें एक कदम में उदाहरण के लिए:

var el = element(by.css("article > tbody > tr"));

हालांकि यह आपके लिए सबसे अच्छा नहीं है, तो आप, getInnerHtml() साथ चांदा के साथ भीतर एचटीएमएल तक पहुँच सकते हैं अगर आप तत्व की पहचान करना चाहते हैं।

आप लोकेटर को एक-एक करके प्राप्त कर सकते हैं। उदाहरण के लिए .: divElm locator और divElm.element(by.css("article")) locator आदि

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