Привет ребят, не получается методом селекта выбрать из выпадающего списка значение. Подскажите может что то?
вот скрины
Отправлено 19 марта 2018 - 07:19
Привет ребят, не получается методом селекта выбрать из выпадающего списка значение. Подскажите может что то?
вот скрины
Отправлено 19 марта 2018 - 08:05
Если под "методом селекта" Вы подразумеваете селениумовский Select - то он тут не применим, т.к. работает только с элементами с тэгом select. А у Вас судя по коду - выпадающий список сделан не стандартным селектом, а самодельной конструкцией других элементов (дивы, спаны).
Вариант - делать так, как Вы это делаете вручную. Т.е. кликнуть (либо по полю в целом, либо по стрелочке, если она была бы отдельным элементом), дождаться, пока пункты списка появятся (т.е. - спаны с пунктами списка станут не disabled, лучше подождать кликабельности), кликнуть по нужному пункту.
Отправлено 19 марта 2018 - 11:31
Если под "методом селекта" Вы подразумеваете селениумовский Select - то он тут не применим, т.к. работает только с элементами с тэгом select. А у Вас судя по коду - выпадающий список сделан не стандартным селектом, а самодельной конструкцией других элементов (дивы, спаны).
Вариант - делать так, как Вы это делаете вручную. Т.е. кликнуть (либо по полю в целом, либо по стрелочке, если она была бы отдельным элементом), дождаться, пока пункты списка появятся (т.е. - спаны с пунктами списка станут не disabled, лучше подождать кликабельности), кликнуть по нужному пункту.
спасибо, я так и сделал
Но вот мой друг посоветовал приведу цитату:
"Не то, имел ввиду, что у тебя есть функция(метод), которая(ый) в себе содержит вызов метода поиска элемента по xpath, но через аргумент получает название региона и ищет его локатор.
упрощённое представление в стиле языка Ruby:
def select_region(region_name)
driver.find_element(xpath: "//div[@class='some-class']//div[contains(text(), '#{region_name}')]")
end
Т.е тут используется интерполяция. region_name в xpath подставляется из аргумента метода. Т.е ты его переиспользовать сможешь для выбора любого нужного, а не конкретного региона."
Я не очень понял, может вы знаете?
Отправлено 19 марта 2018 - 11:54
Если под "методом селекта" Вы подразумеваете селениумовский Select - то он тут не применим, т.к. работает только с элементами с тэгом select. А у Вас судя по коду - выпадающий список сделан не стандартным селектом, а самодельной конструкцией других элементов (дивы, спаны).
Вариант - делать так, как Вы это делаете вручную. Т.е. кликнуть (либо по полю в целом, либо по стрелочке, если она была бы отдельным элементом), дождаться, пока пункты списка появятся (т.е. - спаны с пунктами списка станут не disabled, лучше подождать кликабельности), кликнуть по нужному пункту.
спасибо, я так и сделал
Но вот мой друг посоветовал приведу цитату:
"Не то, имел ввиду, что у тебя есть функция(метод), которая(ый) в себе содержит вызов метода поиска элемента по xpath, но через аргумент получает название региона и ищет его локатор.
упрощённое представление в стиле языка Ruby:
def select_region(region_name)
driver.find_element(xpath: "//div[@class='some-class']//div[contains(text(), '#{region_name}')]")
end
Т.е тут используется интерполяция. region_name в xpath подставляется из аргумента метода. Т.е ты его переиспользовать сможешь для выбора любого нужного, а не конкретного региона."
Я не очень понял, может вы знаете?
создать метод, в который ты будешь прокидывать только текст элемента выпадающего списка. Если его действительно очень часто предполагается юзать, то полезно.
0 пользователей, 0 гостей, 0 анонимных