Как сравнить значения из drop-down list и тектового файла


(AndreyAzimov) #1

Всем привет,

Начал изучать Selenium + Python. Собственно хочу решить простую задачу:

Есть список в тектсовом файле и есть web форма с drop-down list в котором тоже есть список.

Хочу написать тест, который сравнивает значения в текстовом файле и знаяения в  drop-down list.

Как я себе представляю алгоритм работы:

1. Открыть тектовый файл и сохранить в переменную первое значение из списка.

2. Отрыть url

3. Открыть drop-down list

4. Проверить есть ли в drop-down list значение из переменной. Если есть, перейти к шагу 1 ко следующему значению из списка

Если нет записать несуществующее значение в другой текстовый файл.

Подскажите пожалуйста, как лучше реализовать данный тест. 

Спасибо.


(ahanoff) #2

В Selenium есть такая штука, которая называется Select. Использовать его и его методы. Я обычно сравнивал массив значений из json-файла со значениями в drop-down. 


(Shaman) #3

пример для java(думаю в питоне что-то подобное тоже есть):

для вебдрайвера есть такая штука как Select (API)

и в ней собственно есть методы getFirstSelectedOption() - возвращает текущее выбраное значение, и getAllSelectedOptions() - возвращает список всех значений в комбобоксе(могу немного ошибатся, но вроде оно так работало:))

для первого селениума сильно не подскажу, попробуйте поискать что-то вроде Selenium select, вроде так это работало.

 

что касается второго моего вопроса:

если значение одно то невижу смысла делать чтение из файла, достаточно сделать какую-нибудь константу в хранилище, или хмл файл со значением.


(Mykhailo Poliarush) #4

алгоритм правильный, но не эффективный + по времени будет долго идти, если список большой, лучше сделать так:

  1. считываешь все значения из файла и записываешь в список1
  2. открываешь браузер и получаешь все элементы option, в которых хранятся название опций в селекте
  3. получаешь текст из каждого элемента и сохраняешь в список2
  4. сортируешь список1 и список2
  5. делаешь сравнение

Что-то еще подсказать?


(Mykhailo Poliarush) #5

good point, согласен! :)


(aspirin) #6

1 и 3 пункты согласен, дальше думаю надо делать:

проверить на количество в обоих списках

потом можно сортирануть ;) и сравнить. т.к. если разное кол-во элементов, то и сравнивать нет смысла

дальше надо смотреть, нужно ли праверить правильно ли отсортирован список2 и тп


(AndreyAzimov) #7

Всем спасибо :)