2009-11-13 20 views
5

में लिंक का पता नहीं लगा सकता मैं सेलेनियम लिपि लिख रहा हूं। एक HTML पृष्ठ के लिए एक तालिका शामिल है, मैं तालिका में लिंक का पता लगाने के लिए "css = table tr: nth-child (2) td: nth-child (3) a" का उपयोग नहीं कर सकता। सेलेनियम आईडीई मुझे "[त्रुटि] लोकेटर नहीं मिला"।सेलेनियम: तालिका

लेकिन "css = table tr: nth-child (2)" का उपयोग करें, यह पंक्ति को ढूंढ सकता है। तो क्या मैं सीएसएस लोकेटर के लिए गलती करता हूं, मुझे लगता है कि "टीडी: एनएच-चाइल्ड (3) ए" को जोड़ने के लिए टीडी में लिंक के लिए काम करना चाहिए, क्यों नहीं?

संपादित करें: मैं फ़ायरफ़ॉक्स 3.0.15

उत्तर

8

उपयोग कर रहा हूँ HTML को देखते हुए:

css=tr:nth-child(2) > td:nth-child(2) > a 
:

<html> 
    <body> 
    <table> 
     <tr><td>Hello</td><td>World</td></tr> 
     <tr><td>I'm</td><td><a href="http://www.example.com/">Batman</a></td></tr> 
    </table> 
    </body> 
</html> 

आप निम्न लोकेटर लिंक के लिए 2 पंक्ति के 2 कॉलम में उपयोग कर सकते हैं

अद्यतन:

एक के बाद थोड़ा सा शोध, ऐसा लगता है कि आपका मूल लोकेटर काम करना चाहिए, लेकिन सेलेनियम (http://jira.openqa.org/browse/SEL-698) द्वारा उपयोग की जाने वाली cssQuery लाइब्रेरी में एक बग के कारण नहीं है। काम के ऊपर मेरा सुझाव, लेकिन बग ठीक होने तक यह वास्तव में केवल एक कामकाज है। दुर्भाग्य से, cssQuery पर विचार करने के लिए कुछ समय के लिए अद्यतन नहीं किया गया है, मुझे यकीन नहीं है कि यह कितनी जल्दी संबोधित किया जाएगा।

+0

यह काम करता है, धन्यवाद। – zhongshu

0

ऐसा ही एक मुद्दा सेलेनियम आईडीई में चारों ओर अब भी है 2.1.0

मैं अगर एक विशिष्ट URL बदल दिया गया है की जाँच करने के लिए वेब साइटों के एक समूह का परीक्षण कर रहा हूँ।

लिंक मैं 25 वीं में, किसी तालिका में है के लिए जाँच करने के लिए माना जाता रहा हूँ या ऊपर से तो टीआर ...

<tr> 
<td> 
<div align="center"> 
<font color="#FFFFFF"> 
<a target="_blank" href="http://[The link I need to test] ... 

मैं का उपयोग किया है दोनों

assertElementPresent //*[starts-with(@href,'The Link')] 

और

assertElementPresent //*[contains(@*,'The Link')] 

कुछ मामलों में, पहले को परिणाम मिलेगा, लेकिन दूसरा नहीं होगा। अधिकांश समय न तो लिंक मिलेगा।