Как выбрать конкретный элемент из списка select

maksgmn

Client
Регистрация
29.01.2016
Сообщения
204
Благодарностей
6
Баллы
18
Здравствуйте, есть список на сайте авито, в котором нужно выбрать город, этот список - select. Как мне сделать, чтобы я мог задать значением из переменной какой-либо город? Вот скриншот, список заскринить не получается, но думаю тут понятно, что это за список -> http://prntscr.com/ao83p6, спасибо
 

Mikhail B.

Moderator
Регистрация
23.12.2014
Сообщения
14 328
Благодарностей
5 431
Баллы
113
Set value 2,3,4
 

qzen4i

Client
Регистрация
01.05.2014
Сообщения
1 404
Благодарностей
313
Баллы
83




Но нужно в коде посмотреть, как он выдает селектед итемс.



Таким образом он все города должен посмотреть, чтобы мог задавать.
Как он будет знать, какой валю отвечает для какого города?
 
  • Спасибо
Реакции: Fobos

maksgmn

Client
Регистрация
29.01.2016
Сообщения
204
Благодарностей
6
Баллы
18




Но нужно в коде посмотреть, как он выдает селектед итемс.




Таким образом он все города должен посмотреть, чтобы мог задавать.
Как он будет знать, какой валю отвечает для какого города?
Там инпута нет, там option
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 707
Баллы
113
Option это внутренности select
Скрин выше верный, только input:text замените на select и пропишите к нему верные атрибуты поиска
 

qzen4i

Client
Регистрация
01.05.2014
Сообщения
1 404
Благодарностей
313
Баллы
83
Там инпута нет, там option
Скрин просто был примером, я не делал на авито, а по ходе своей работы просто сделал скрин, как сделать, т.е верхнее это грубо сказать в скрине лишнее.
 

Mikhail B.

Moderator
Регистрация
23.12.2014
Сообщения
14 328
Благодарностей
5 431
Баллы
113
Таким образом он все города должен посмотреть, чтобы мог задавать.
Как он будет знать, какой валю отвечает для какого города?
Значит сначала клик по select, потом выбор value.
 

qzen4i

Client
Регистрация
01.05.2014
Сообщения
1 404
Благодарностей
313
Баллы
83
Значит сначала клик по select, потом выбор value.
Что измениться ?, допустим, я начал делать, в списке у меня город стоит Балашиха, это к примеру, откуда я знать буду, какой value отвечает за Балашиха?
 

Mikhail B.

Moderator
Регистрация
23.12.2014
Сообщения
14 328
Благодарностей
5 431
Баллы
113
Что измениться ?, допустим, я начал делать, в списке у меня город стоит Балашиха, это к примеру, откуда я знать буду, какой value отвечает за Балашиха?
Методом подбора там статичные значения как правило, сверзу вниз. Капайтесь в дереве элементов, там тоже можно найти их.
 

qzen4i

Client
Регистрация
01.05.2014
Сообщения
1 404
Благодарностей
313
Баллы
83
Методом подбора там статичные значения как правило, сверзу вниз. Капайтесь в дереве элементов, там тоже можно найти их.
Вы читайте что я пишу?

Если можно сделать в 10 раз легче, http://zennolab.com/discussion/threads/kak-vybrat-konkretnyj-ehlement-iz-spiska-select.26597/#post-185396
Вот пример, зачем мне капать находить value? Значение по номерам?
 

Mikhail B.

Moderator
Регистрация
23.12.2014
Сообщения
14 328
Благодарностей
5 431
Баллы
113
Вы читайте что я пишу?

Если можно сделать в 10 раз легче, http://zennolab.com/discussion/threads/kak-vybrat-konkretnyj-ehlement-iz-spiska-select.26597/#post-185396
Вот пример, зачем мне капать находить value? Значение по номерам?
Да не зачем, я предложил свой вариант, вы свой, я вобще не понял, что за "селектед итемс" изначально, подумал вы спрашиваете. Если решение найдено и вы работали с авито, то вам виднее.
 
  • Спасибо
Реакции: qzen4i

Darkoman

Client
Регистрация
17.03.2018
Сообщения
54
Благодарностей
7
Баллы
8
Опять Авито. Как подставить свое значение перемеренной в выборе из списка.
 
  • Спасибо
Реакции: prostors и ttimbaland1983
Регистрация
10.12.2015
Сообщения
46
Благодарностей
9
Баллы
8

xatchikzzz

Client
Регистрация
08.09.2010
Сообщения
566
Благодарностей
38
Баллы
28

Zemich

Client
Регистрация
01.03.2020
Сообщения
37
Благодарностей
9
Баллы
8
Возможно кому нибудь будет полезен мой код который устанавливает нужное значение в атрибут "select".
алгоритм следующий:

1. находим с помощью xpath нужный нам select
2. наводим фокус
3. переводим список (select) в начало
4. в цикле перебираем эмулируя нажатием клавиши "down" нужное нам значение. Если нужное нам значение установлено цикл завершает работу
C#:
// выбор страны/ региона

HtmlElement he;
string profile_country = project.Variables["profile_country"].Value; //переменная из входных настроек (строна)
string attribute;

he = instance.ActiveTab.FindElementByXPath("//div[@class='Select']/Select[@name='phone_prefix']", 0);
if (he.IsVoid) return -1;   
instance.WaitFieldEmulationDelay();
he.RiseEvent("focus", instance.EmulationLevel);

//ставим листбокс (select) в верхнее положение
instance.SendText("{HOME}", 15);

//получам текущее выбранное значение страны
// Получить значение атрибута "selecteditems"
attribute = he.GetAttribute("selecteditems");
project.SendInfoToLog(string.Format("значение атрибута: {0}",attribute),true);
//сравниваем с заданными входными настройками страны (цикл сравнений)
while(!attribute.Contains(profile_country)){
    instance.SendText("{DOWN}", 15);
    attribute = he.GetAttribute("selecteditems");
}

project.SendInfoToLog(string.Format("значение атрибута: {0}",attribute),true);
 
  • Спасибо
Реакции: ramzes8
Регистрация
12.03.2023
Сообщения
9
Благодарностей
2
Баллы
3
Вот это кастыли. А что, софт, который разрабатывают более десятка лет не может победить обычный селект? Подстановка но номеру - это очень слабенько и не универсально. Как выбирать select по значению атрибута value?
 
Регистрация
12.03.2023
Сообщения
9
Благодарностей
2
Баллы
3
Ребят, я работаю senior-ом много лет. Может я, конечно, тупой кодер, но я не въезжаю, как в этом софте сделать банальную операцию: выбрать нужный option по значению атрибута value. )))) Подскажите, как это делается без кучи костылей. Должен же быть простой вариант.
 

one

Client
Регистрация
22.09.2015
Сообщения
6 793
Благодарностей
1 264
Баллы
113
Ребят, я работаю senior-ом много лет. Может я, конечно, тупой кодер, но я не въезжаю, как в этом софте сделать банальную операцию: выбрать нужный option по значению атрибута value. )))) Подскажите, как это делается без кучи костылей. Должен же быть простой вариант.
Топик 16го года, может что поменялось.
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 690
Баллы
113
Вот это кастыли. А что, софт, который разрабатывают более десятка лет не может победить обычный селект? Подстановка но номеру - это очень слабенько и не универсально. Как выбирать select по значению атрибута value?
мы все будем не против, если сделаешь не слабенько и универсально :bk: а так же скажем тебе спасибо, если ты все сайты в мире заставишь придерживаться какого то одного стандарта... меры воздействия на твой выбор ;-)
а то развелось тут куча , то на селектах сделают, то на дивах , вообще расслабились.

ну а вообще, давно уже на форуме все есть по селектам. senior с многолетним стажем, умеет же пользоваться поиском ? ;-)
вот например парочка ...
 
Регистрация
12.03.2023
Сообщения
9
Благодарностей
2
Баллы
3
О, как.
А может ты мне еще и заплатишь тогда? :D А то че это я, действительно. Плачу еще и вопросы тут смею задавать.
А на счет поиска. Спасибо, кэп. Вот только, как я и написал выше, это костыли.
Ты предлагаешь для решения примитивной задачи вставить кусок кода. Софт как бы претендует на нечто большее, чем на общественный туалет, где за собой нужно слить ведром из колодца на улице, а не кнопочкой на сливном бачке, не так ли?
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 690
Баллы
113
О, как.
А может ты мне еще и заплатишь тогда? :D А то че это я, действительно. Плачу еще и вопросы тут смею задавать.
А на счет поиска. Спасибо, кэп. Вот только, как я и написал выше, это костыли.
Ты предлагаешь для решения примитивной задачи вставить кусок кода. Софт как бы претендует на нечто большее, чем на общественный туалет, где за собой нужно слить ведром из колодца на улице, а не кнопочкой на сливном бачке, не так ли?
Тебе ехать или шашечки ?
Ну походи по рынку, поищи подешевле, да по лучше... или может сам напишешь такой софт, что мы все прям такие вау, у него же селект одной кнопкой выбирается :bk:

Я вот хз, где и что там у тебя претендует, но тебе лучше сделать возврат, если купил и не покупать, если пробуешь демку, раз уж на стадии селекта такие проблемы. а будешь тут на форуме как парочка вечно недовольных, распальцовку делать, типа самый умный, а софт говно. но все равно пользуюсь и поэтому весь в говне (facepalm)
 
Регистрация
12.03.2023
Сообщения
9
Благодарностей
2
Баллы
3
Тебе ехать или шашечки ?
Ну походи по рынку, поищи подешевле, да по лучше... или может сам напишешь такой софт, что мы все прям такие вау, у него же селект одной кнопкой выбирается :bk:

Я вот хз, где и что там у тебя претендует, но тебе лучше сделать возврат, если купил и не покупать, если пробуешь демку, раз уж на стадии селекта такие проблемы. а будешь тут на форуме как парочка вечно недовольных, распальцовку делать, типа самый умный, а софт говно. но все равно пользуюсь и поэтому весь в говне (facepalm)
М-да. Клиентоориентированность: made in Russia.
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 690
Баллы
113
М-да. Клиентоориентированность: made in Russia.
в каком месте ты увидел что я хочу видеть в тебе клиента ? ты спросил про селект, я тебе накидал ссылок. на этом все.
все остальные твои распальцовки, про крутого сеньера, про софт который не удовлетворяет твоим высоким стандартам, это можешь при себе оставить.
Вообще тебя тут никто не держит, не нравиться, досвидос. 8-)
 

viol2021

Client
Регистрация
12.01.2021
Сообщения
481
Благодарностей
179
Баллы
43
Здравствуйте, есть список на сайте авито, в котором нужно выбрать город, этот список - select. Как мне сделать, чтобы я мог задать значением из переменной какой-либо город? Вот скриншот, список заскринить не получается, но думаю тут понятно, что это за список -> http://prntscr.com/ao83p6, спасибо
Это в мобильной версии?
Если нет, то вот

C#:
string city ="Балашиха";
var tab = instance.ActiveTab;
tab.FindElementByXPath("//*[@data-marker = 'search-form/change-location']",0).Click();Thread.Sleep(500);//Открыть форму
tab.FindElementByXPath("//*[@data-marker='popup-location/region/input']",0).SetValue(city,"full",false);Thread.Sleep(1000);//Ввести запрос
tab.FindElementByXPath($"//*[@data-marker = 'suggest-list']//li//span[starts-with(@class,'suggest-suggest')]//*[starts-with(text(),'{city}')]",0).Click();Thread.Sleep(500);//Выбрать совпадение
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)