क्या browser.find_elements_by_css_selector('input[type=text]')
जैसे कॉल हमेशा WebElement
ऑब्जेक्ट्स को वापस लौटाते हैं जो DOM को दर्शाता है?find_elements_by_ * फ़ंक्शन हमेशा डीओएम ऑर्डर को प्रतिबिंबित करते हैं?
मैं पूछता हूं क्योंकि मेरे पास एक टू-डू सूची-जैसी एप्लिकेशन है और ऑर्डर जो तत्वों को पृष्ठ पर दिखाई देता है (गतिशील रूप से जोड़ा गया) महत्वपूर्ण है, और शायद मैं गुदा हो रहा हूं लेकिन मैं इस व्यवहार को भाग के रूप में देख रहा हूं मेरे परीक्षण सूट का।
एनबी .: मैं संभवतः विभिन्न ब्राउज़रों में परीक्षण चलाऊंगा।
मेरे परीक्षण (unittest
साथ अजगर):
def test_titles_should_appear_in_the_order_they_are_entered(self):
titles = ['title 1', 'title 2', 'title 3']
for title in titles:
self._type_new_title(title).send_keys(Keys.RETURN)
inputs = self.browser.find_elements_by_css_selector('input[type=text].title')
# assumption: inputs will always reflect the DOM order, top to bottom
input_vals = [i.get_attribute('value') for i in inputs]
self.assertEqual(input_vals, titles)
अनजाने में बोलते हुए, मैंने कभी भी लौटा तत्व ऑर्डर मैच को अपने डीओएम स्थिति के साथ देखा है। अन्यथा जब मैं तत्वों की एक सूची बना देता हूं और मैं 'सूची [0]' निर्दिष्ट करता हूं, मैं वास्तव में भाग्यशाली हूं कि यह समय के बाद एक ही तत्व समय प्राप्त करता है। –