像browser.find_elements_by_css_selector('input[type=text]')
這樣的調用是否總是按照反映DOM的順序返回WebElement
對象?find_elements_by_ *函數是否總是反映DOM順序?
我問,因爲我有一個待辦事項列表類似的應用程序和表單元素出現在頁面(動態添加)的順序是非常重要的,也許我是肛門,但我測試這種行爲,因爲部分我的測試套件。
N.B:我很可能會在各種瀏覽器中運行測試。
我的測試(Python和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)
據傳說,我只見過返回的元素順序匹配他們的DOM位置。否則,當我製作一個元素列表,並指定'list [0]'我真的很幸運,它會一次又一次地獲取相同的元素。 –