2014-09-22 5 views
0

Я пытаюсь создать тест selenium в python, и я получаю противоречивые результаты.Selenium и борьба дампикера?

Фрагмент моего теста:

el = self.waitButton('edit') # wait for load of show page to complete. 
    # check some fields 
    els = browser.find_elements_by_xpath("//span[@class='info']") 
    assert els[0].text == '2' 
    assert els[1].text == "George's" 
    assert els[2].text == 'Organisation' 
    assert els[5].text == '25/Mar/15' 
    el.click() # request for edit screen 
    el = self.waitButton('save') # returns save button when edit screen loaded. 
    x = browser.find_element_by_name('Status') 
    # x.click() # uncomment this line and the click two lines down is ignored 
    el = browser.find_element_by_xpath("//a[@class='save']") # re-find save button 
    el.click() # this field is selected, but the click action does not happen 
    el = self.waitButton('edit') # wait for edit button to appear 
    els = browser.find_elements_by_xpath("//span[@class='info']") 
    assert els[5].text == '25/Mar/15' 

Прежде всего следует отметить, что очень похожий код работает на 100% по сравнению с тремя другими тестами, на страницах, которые не содержат DatePicker field.If я изменяю класс поля datapicker для datepickerXX этот экран работает так, как ожидалось.

Однако, если активна датапикер, если я нахожусь в любом поле данных (не обязательно поле datepicker), то я не могу позже нажать кнопку «Сохранить» ????

Так что мой вопрос: как я могу надежно проверить экран редактирования, который содержит поле с используемым datepicker, если я не могу его сохранить? Кто-нибудь знает (или любит догадываться), что может произойти, и почему он терпит неудачу?

Благодаря

Ian

ответ

1

Был две вещи неправильно с моим кодом.

1) В другом месте у меня был временной интервал - я ждал чего-то, что было правдой на предыдущем экране, и, таким образом, ожидание иногда делалось, а иногда и не ждало нового экрана.

2) Когда вы нажмете на поле выбора или вкладку в него, браузер (FF) отобразит список выбора. И Selenium, и браузер знают это - они просто не согласны, когда список выбора снова скрыт. Браузер скроет его, если щелкнуть другое поле. Селен требует, чтобы был выбран выбор, и если он не попадает в путаницу.

Как только я разобрал обе эти проблемы, все тесты работали по мере необходимости.

Смежные вопросы