2010-02-02 9 views
6

मैं कुछ सामग्री के साथ एक <div> और यह click सेलेनियम से खोजने की जरूरत है, तो के रूप में:सेलेनियम: विशिष्ट सामग्री के साथ div कैसे ढूंढें?

 
<tr> 
    <td>clickAndWait</td> 
    <td>//div[@class='gwt-Label' ***WITH CONTENT='Logout'***]</td> 
    <td>5000</td> 
</tr> 

वहाँ किसी तरह यह करने के लिए है? मैं एक पूर्ण xpath का उपयोग नहीं करना चाहता।

//div[@class='gwt-Label' and contains(., 'Logout')] 

उत्तर

7

इस कोशिश

<div class="gwt-Label">This FindMe DIV</div> 

का उपयोग कर स्थित हो सकता है:

css=.gwt-Label:contains('FindMe') 
+0

महान ध्वनि के उपयोग, लेकिन मैं इसे करने के लिए नहीं मिल सकता है काम। प्रलेखन के लिए खोजा गया, लेकिन कोई नहीं मिला; क्या आपके पास एक लिंक है? –

+0

http://www.w3.org/TR/xpath/#function- – krosenvold

+0

ओह। आपको '।' के आस-पास एकल उद्धरण ड्रॉप करने की आवश्यकता है। संपादित – krosenvold

8

तुम भी इस्तेमाल कर सकते हैं सीएसएस लोकेटर:

+0

सेलेनियम लोकेटर की पहचान करती है, div पाती है, लेकिन क्लिक कभी नहीं आता है! कोई विचार? –

+0

यह हो सकता है कि DIV वह तत्व नहीं है जो क्लिक का जवाब देता है। क्या कोई अभिभावक/बाल तत्व है जो अधिक उपयुक्त हो सकता है? कभी-कभी 'क्लिक' के साथ भी समस्याएं होती हैं और आप इसके बजाए 'माउसडाउन', 'माउसअप' कमांड को आजमा सकते हैं। –

1

शायद आपके XPath बस काफी नहीं कर रहा है क्या आपको लगता है। ब्लॉक में सभी टेक्स्ट को संयोजित करने के लिए आपको स्ट्रिंग() फ़ंक्शन का उपयोग करने की आवश्यकता हो सकती है।

उदाहरण के लिए, TestPlan (सेलेनियम बैकएंड के रूप में उपयोग करते हुए) में आप कुछ इस तरह करना होगा:

Click //div[@class='gwt-Label'][contains(string(),'Logout')] 

नोट स्ट्रिंग()

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