Подскажите как корректно выбирать select из выпадающего окна

SlavenTyz

Client
Регистрация
30.04.2018
Сообщения
1 085
Благодарностей
29
Баллы
48
Замучился уже 1-ну задачу решать, вроде обошел но в итоге на рукожопил и вернулся опять к этой же задачи

Имеется окно которое указано на картинке, но я ни как не могу кликнуть на нужный месяц.

  • Полная эмуляции мышки бесполезно потому что не могу, инфицировать элемент с месяцем, что бы кликнуть на него
  • Данный код нужный месяц не выбирает
    ///////////////////////// Переключения месяца/////////////////////
string strNomber_month=project.Variables["Nomber_month"].Value;

int Nomber_month=int.Parse(strNomber_month);



// Конструктор действий, тип Set

HtmlElement he = instance.ActiveTab.GetDocumentByAddress("0").FindElementByAttribute("select", "class", "ui-datepicker-month", "regexp", 0);

if (he.IsVoid) return -1;



// Задержка эмуляции

instance.WaitFieldEmulationDelay();

// Установить элементу значение

  • he.SetValue(strNomber_month, instance.EmulationLevel, false);

    114933
 

K R

Client
Регистрация
14.01.2017
Сообщения
127
Благодарностей
127
Баллы
43
Делаем тач по этому элементу xpath - //select[@class='ui-datepicker-month']
Далее эмуляция клавиатуры:
{DOWN}
{DOWN}
{ENTER}

Количество нажатий вниз определите какой-нибудь своей логикой.
 
  • Спасибо
Реакции: SlavenTyz

SlavenTyz

Client
Регистрация
30.04.2018
Сообщения
1 085
Благодарностей
29
Баллы
48
Делаем тач по этому элементу xpath - //select[@class='ui-datepicker-month']
Далее эмуляция клавиатуры:
{DOWN}
{DOWN}
{ENTER}

Количество нажатий вниз определите какой-нибудь своей логикой.
Спасибо но как через полную эмуляцию, это еще один способ. С данной задачей часто сталкиваюсь и вот сейчас решил разобраться
 

i.stasik

Client
Регистрация
25.09.2023
Сообщения
233
Благодарностей
31
Баллы
28
включаешь запись действий
через конструктор действий делаешь Rise -> click на открытие списка
2ой раз на выбор

далее при необходимости открываешь кубики и смотришь выбранные значения. туда можно вставить переменные, чтоб выбирало из списка нужное значение
 

SlavenTyz

Client
Регистрация
30.04.2018
Сообщения
1 085
Благодарностей
29
Баллы
48

K R

Client
Регистрация
14.01.2017
Сообщения
127
Благодарностей
127
Баллы
43
Все ваши подсказки не позволят узнать какой элемент выбран, я только вверх, вниз могу эмуляцией клавиатуры двигать. А какой элемент выбран не узнаю
Если кто ни будь хочет вникнуть вот адрес сайта https://ru.whoscored.com/Regions/3/Tournaments/406/Seasons/6541/Stages/15082/Show/Албания-2-2016-2017

Посмотреть вложение 114950
За 50$ могу сделать шаблон, который будет выбирать нужное вам значение.
 

i.stasik

Client
Регистрация
25.09.2023
Сообщения
233
Благодарностей
31
Баллы
28
За 50$ могу сделать шаблон, который будет выбирать нужное вам значение.
на кворке такое за минималку в 500руб сделают
За 50$ напишут полноценный не простой шаблон с апи смс сервисами (со всеми ответами и статусами апи) и плагином для разгадывания фанкапчи
 

Ахилес

Client
Read only
Регистрация
11.11.2020
Сообщения
956
Благодарностей
392
Баллы
63
на кворке такое за минималку в 500руб сделают
За 50$ напишут полноценный не простой шаблон с апи смс сервисами (со всеми ответами и статусами апи) и плагином для разгадывания фанкапчи
*HAHA* блин, ты сделал этот вечер... долго ржал.
 

K R

Client
Регистрация
14.01.2017
Сообщения
127
Благодарностей
127
Баллы
43
на кворке такое за минималку в 500руб сделают
За 50$ напишут полноценный не простой шаблон с апи смс сервисами (со всеми ответами и статусами апи) и плагином для разгадывания фанкапчи
А это случайно не вы занимаетесь подбором разработчиков zennoposter 8?
 

i.stasik

Client
Регистрация
25.09.2023
Сообщения
233
Благодарностей
31
Баллы
28

i.stasik

Client
Регистрация
25.09.2023
Сообщения
233
Благодарностей
31
Баллы
28

Ахилес

Client
Read only
Регистрация
11.11.2020
Сообщения
956
Благодарностей
392
Баллы
63
ну я понимаю, что на кворке по цене вы не проходите ((
даже не знаю... не пробовал... я себя как то уважаю что ли... если там все как написано, то это либо школьники, либо индусы, либо начинающие зенно пользователи...
но больше склоняюсь что ты так просто затролил чувака... уважающий себя разработчик за 500 р. даже ТЗ читать не будет. и найдет заказы за нормальную цену.
 

i.stasik

Client
Регистрация
25.09.2023
Сообщения
233
Благодарностей
31
Баллы
28
я бы не сказал, что начинающие
пишут достаточно хорошо
цены там реально дешевые
и отзывы нормальные
проверено на личном опыте!
 

SlavenTyz

Client
Регистрация
30.04.2018
Сообщения
1 085
Благодарностей
29
Баллы
48
Кто ни будь реальный совет даст или ни кто не знает
 

K R

Client
Регистрация
14.01.2017
Сообщения
127
Благодарностей
127
Баллы
43
Кто ни будь реальный совет даст или ни кто не знает
Дружище, я дал тебе реальный совет. То, о чём ты говоришь называется не "попросил совета", а "сделайте за меня". А то, как ты при этом общаешься, напоминает картинку ниже.



Можно конечно дождаться пока i.stasik научится работать в зенке и через год за 500 рублей сделает тебе нужный шаблон.
А можно не ждать, заказать шаблон за 75$ у знающих людей, получить его в кратчайшие сроки и пользоваться с удовольствием.
 

Ахилес

Client
Read only
Регистрация
11.11.2020
Сообщения
956
Благодарностей
392
Баллы
63
Ладно вам, не ругайтесь....
Значит такой совет... учитесь пользоваться поиском на форуме. быстрый поиск по ключу "выбрать select" и пробегание по диагонале глазами приводит в тему https://zennolab.com/discussion/threads/pomogite-s-select-i-option-plz.77679/ где очень много рабочих вариантов, подбираем под свой случай и работаем.

да да, я понимаю, что выдав сейчас рабочий код, я потакаю тому что сказал @K R выше... но я просто не хочу щас разводить тут болото из банальщины...

вот выбор по value , например если надо выбрать /Regions/3/Tournaments/406/Seasons/6541/Stages/14773/Show/%D0%90%D0%BB%D0%B1%D0%B0%D0%BD%D0%B8%D1%8F-2-2016-2017 , то код будет такой

C#:
string xpath = $@".//option[@value='{project.Variables["ID_value"].Value}']";

HtmlElement he = instance.ActiveTab.MainDocument.FindElementById("stages");
HtmlElementCollection all_elements = he.FindChildrenByXPath(".//option[@selected]");
HtmlElementCollection target_elements = he.FindChildrenByXPath(xpath);

if (all_elements.Count > 0 && target_elements.Count>0 ) {
    // удаляем атрибут selected со старого элемента
    foreach (HtmlElement he_opt in all_elements) {
        if (he_opt.OuterHtml.IndexOf("selected") != -1) {
            he_opt.RemoveAttribute("selected");
        }
    }

    HtmlElement he_option = target_elements.Elements[0];
    // Вариант 1:
    he_option.SetAttribute("selected", "selected");
    he_option.RiseEvent("onchange", "Full");

}
в переменной ID_value надо поместить /Regions/3/Tournaments/406/Seasons/6541/Stages/14773/Show/%D0%90%D0%BB%D0%B1%D0%B0%D0%BD%D0%B8%D1%8F-2-2016-2017

строка HtmlElement he = instance.ActiveTab.MainDocument.FindElementById("stages"); ищет родителя по его ID. в данном случае это stages
если у родителя нет ID , тогда меняем код на поиск по XPath, составляем XPath , прописываем в коде и работаем.
 
Последнее редактирование:
  • Спасибо
Реакции: SlavenTyz и K R

Ахилес

Client
Read only
Регистрация
11.11.2020
Сообщения
956
Благодарностей
392
Баллы
63
если надо выбрать по 1. Division B , то код такой

C#:
string xpath = $@".//option[text()='{project.Variables["ID_value"].Value}']";

HtmlElement he = instance.ActiveTab.MainDocument.FindElementById("stages");
HtmlElementCollection all_elements = he.FindChildrenByXPath(".//option[@selected]");
HtmlElementCollection target_elements = he.FindChildrenByXPath(xpath);

if (all_elements.Count > 0 && target_elements.Count>0 ) {
    // удаляем атрибут selected со старого элемента
    foreach (HtmlElement he_opt in all_elements) {
        if (he_opt.OuterHtml.IndexOf("selected") != -1) {
            he_opt.RemoveAttribute("selected");
        }
    }
 
    HtmlElement he_option = target_elements.Elements[0];
    // Вариант 1:
    he_option.SetAttribute("selected", "selected");
    he_option.RiseEvent("onchange", "Full");

}
в переменной ID_value надо поместить 1. Division B
 
  • Спасибо
Реакции: SlavenTyz и slavyn8213

i.stasik

Client
Регистрация
25.09.2023
Сообщения
233
Благодарностей
31
Баллы
28
и это стоило 50$ ??? ))))
 

Ахилес

Client
Read only
Регистрация
11.11.2020
Сообщения
956
Благодарностей
392
Баллы
63
и это стоило 50$ ??? ))))
я поискал это бесплатно. ни ты, ни автор этого топика до сего момента не нашли это решение в открытом доступе. а раз не нашли и оно очень надо было, то можно и 100$ запросить.
по опыту продаж, скажу что и больше люди готовы платить.
 

i.stasik

Client
Регистрация
25.09.2023
Сообщения
233
Благодарностей
31
Баллы
28
однако вы умеете вытягивать деньги от ещё не неопытных зеновладельцев )))
 

Ахилес

Client
Read only
Регистрация
11.11.2020
Сообщения
956
Благодарностей
392
Баллы
63
однако вы умеете вытягивать деньги от ещё не неопытных зеновладельцев )))
есть такое выражение. время - деньги.
вот когда ты наберешься опыта и пойдешь делать заказы на кворк за 500р. тогда может быть поймешь. а может и нет... очень много вижу людей, которые не ценят труд других... типа да что там писать то... 5 строк кода.... умалчивая правда, что ума то у них самих не хватит написать эти самые 5 строк кода.

применительно к текущей теме, твоя помощь вообще ноль, хотя и не взял 500р.

мне даже интересно, почему ты бесплатно не помог человеку ? или хотя бы за 500р. ?
 

i.stasik

Client
Регистрация
25.09.2023
Сообщения
233
Благодарностей
31
Баллы
28
ну ладно, помог человеку за бесплатно, так не превозноси здесь себя как Бога

на кворке я заказчик, поэтому увы никак ни за 500р, ни за 50$, ни за 100$
пробовал здесь исполнителей искать - откровенно кусается ценник (((
 

Ахилес

Client
Read only
Регистрация
11.11.2020
Сообщения
956
Благодарностей
392
Баллы
63
ну ладно, помог человеку за бесплатно, так не превозноси здесь себя как Бога

на кворке я заказчик, поэтому увы никак ни за 500р, ни за 50$, ни за 100$
пробовал здесь исполнителей искать - откровенно кусается ценник (((
вот когда из Заказчика перейдешь в разряд Разработчиков, тогда и будешь диктовать цены на свои услуги.
а пока что помечу тебя как не разбирающегося, но желающего всего на халяву.

за сим, закончим этот балаган.
 

i.stasik

Client
Регистрация
25.09.2023
Сообщения
233
Благодарностей
31
Баллы
28
в разрабы я точно не переобуюсь, не моё кому-то что-то писать и профит не тот

и разве я здесь что-то на форуме на халяву просил мне сделать ???
если что мне нужно, иду с денежками на кворк

и давай до свидания ))
 

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