И опять про выпадающий список

crn

Client
Регистрация
19.11.2015
Сообщения
62
Благодарностей
6
Баллы
8
Пару месяцев назад пытался сделать "универсальный подаватель объявлений" на с#, но так как не силен в HTML столкнулся с непробиваемой для меня стеной разнообразия флоры и фауны комбобоксов. Наткнулся на Зенно, думал проблема решена, включил "запись" и готово, но не тут то было.
И так, в чем проблема.
Пациент - http://move.su/
Там 6 комбобоксов.

Тип комнат, Тип балкона, Тип санузла и т.д.
Вот код 2го комбобокса:

HTML:
<p class="add-txt"> Тип комнат:</p>
        <select name="item[rooms_type]" data-placeholder="Выберите..." class="chosen-select" style="width:252px;">
            <option value=""></option>
                            <option value="1">смежные</option>
                            <option value="2">раздельные</option>
                            <option value="3">смежно-раздельные</option>
                    </select>
Вот 3го:

HTML:
 <p class="add-txt">Тип балкона:</p>
        <select name="item[balcony]" data-placeholder="Выберите..." class="chosen-select" style="width:252px;">
            <option value=""></option>
                            <option value="1">балкон</option>
                            <option value="2">лоджия</option>
                            <option value="3">2 балкона</option>
                            <option value="4">2 лоджии</option>
                            <option value="5">балкон и лоджия</option>
                    </select>
У всех innertext - "Выберите\.\.\." , что соответствует "data-placeholder" в html коде. Но этих "Выберите\.\.\." аж 7 штук на странице.
Если же я делаю поиск по тэгу "select", имя атрибута "name", значение "item[rooms_type]", а Тип поиска Text - то вроде бы Зенно находит его однозначно, в результатах поиска конструктора действий стоит 0, но когда я выставляю Rise - click, то ничего не срабатывает.
Подскажите пожалуйста, как мне сделать нужный мне выбор пункта комбобокса.
Знаю, что нужно читать много справки и смотреть туториалы, но мне осталась именно эта мелочь, а срок действия демки уже истекает, и нужно принимать решение, покупать Зенно или нет.
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 040
Баллы
113
спарсил тип комнат, вытащил из этого всего хлама то что надо, выбрал рандомно или по своему выбору, в каждом комбоксе у тебя значение, я так думаю что передаётся цифра, и так с каждым, это секундное дело будет при обработке проекта
 
  • Спасибо
Реакции: crn

crn

Client
Регистрация
19.11.2015
Сообщения
62
Благодарностей
6
Баллы
8
спарсил тип комнат, вытащил из этого всего хлама то что надо, выбрал рандомно или по своему выбору, в каждом комбоксе у тебя значение, я так думаю что передаётся цифра, и так с каждым, это секундное дело будет при обработке проекта
Спасибо, сделал так:

Я как понял, он меняет стиль выпадающего списка. По крайней мере визуально он приобретает другой вид.
Далее выбираю обычным обработчиком пункта меню значение value.
 

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 882
Баллы
113
Да, таким образом Вы вживляете в элемент своё значение, которое в дальнейшем может использоваться для поиска и обработки.
По проблеме - тут, вероятно, может сработать Set- атрибут selecteditems - значение (балкон), после чего выполняете Rise - Onchange.
 
  • Спасибо
Реакции: Tony Soprano и crn

crn

Client
Регистрация
19.11.2015
Сообщения
62
Благодарностей
6
Баллы
8
Да, таким образом Вы вживляете в элемент своё значение, которое в дальнейшем может использоваться для поиска и обработки.
По проблеме - тут, вероятно, может сработать Set- атрибут selecteditems - значение (балкон), после чего выполняете Rise - Onchange.
на сколько я помню, не срабатывал.
после того, как меняется стиль, спокойно устанавливается value в нужное значение.
 

crn

Client
Регистрация
19.11.2015
Сообщения
62
Благодарностей
6
Баллы
8
Да, таким образом Вы вживляете в элемент своё значение, которое в дальнейшем может использоваться для поиска и обработки.
По проблеме - тут, вероятно, может сработать Set- атрибут selecteditems - значение (балкон), после чего выполняете Rise - Onchange.
Не могли бы вы подсказать по поводу этой ситуации?
HTML:
<ul class="list formtext_list formtext_list3">
    <li>
        <label for="tr1">Материал <span class="red_star">*</span>:</label>
        <div class="inbl option_100 option_103">
            <table id="materials_ddl_ET" class="dxeValidDynEditorTable" cellspacing="0" cellpadding="0" style="border-collapse:collapse;">
        <tr>
            <td id="materials_ddl_CC"><select class="dxeButtonEditSys" id="materials_ddl" name="ctl00$col1$cnt_FlatsSell$materials_ddl" size="1" onfocus="aspxEGotFocus(&#39;materials_ddl&#39;)" onblur="aspxELostFocus(&#39;materials_ddl&#39;)" onchange="aspxETextChanged(&#39;materials_ddl&#39;)" onkeydown="aspxEKeyDown(&#39;materials_ddl&#39;, event)">
                <option selected="selected" value="0">
                    Выберите...
                </option><option value="1">
                    Блочный
                </option><option value="2">
                    Деревянный
                </option><option value="3">
                    Каркасно-кирпичный
                </option><option value="4">
                    Кирпичный
                </option><option value="5">
                    Монолитный ж/б
                </option><option value="6">
                    Монолитный ж/б с кирпичной облицовкой
                </option><option value="7">
                    Панельный
                </option>
            </select><input type="hidden" id="materials_ddl_LDeletedItems" name="materials_ddl_LDeletedItems" value="" /><input type="hidden" id="materials_ddl_LInsertedItems" name="materials_ddl_LInsertedItems" value="" /><input type="hidden" id="materials_ddl_LCustomCallback" name="materials_ddl_LCustomCallback" value="" /><script id="dxss_1860600350" type="text/javascript">
<!--
Поиск объект находит, но устанавливать значение никак не желает. Пробовал и set value и selecteditems, никак не желает устанавливать значение, даже rise click не срабатывает. А эмуляцию клавы не хочется делать.
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 707
Баллы
113
Там нестандартные элементы. Нужно делать клик, чтобы показался выпадающий список, потом делать второй клик по элементу из выпадающего списка, поиск по innertext
 
  • Спасибо
Реакции: crn

crn

Client
Регистрация
19.11.2015
Сообщения
62
Благодарностей
6
Баллы
8
Там нестандартные элементы. Нужно делать клик, чтобы показался выпадающий список, потом делать второй клик по элементу из выпадающего списка, поиск по innertext
спасибо, получилось.
 

crn

Client
Регистрация
19.11.2015
Сообщения
62
Благодарностей
6
Баллы
8
Другая проблема)
На сайте полностью ява скрипт.
И id его эдитов и комбобоксов постоянно меняются.
Например сейчас его Тэг - id-generator-6, при следующим запуске может быть id-generator-3 или еще какой нибудь.
Как можно это обойти? Думал сделать эмуляцие
 

crn

Client
Регистрация
19.11.2015
Сообщения
62
Благодарностей
6
Баллы
8
Думал сделать эмуляцию Табом до нужного эдита, и получить его id getom, но и это не срабатывает.
 

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 882
Баллы
113

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 882
Баллы
113
Думал сделать эмуляцию Табом до нужного эдита, и получить его id getom, но и это не срабатывает.
Ну так точно не получится. В Get Вы должны указать значения и номер элемента, значение которого нужно взять.
 
  • Спасибо
Реакции: crn

crn

Client
Регистрация
19.11.2015
Сообщения
62
Благодарностей
6
Баллы
8
Ищите другие параметры, по которым можно отыскать нужный элемент.
а как? я его
Ну так точно не получится. В Get Вы должны указать значения и номер элемента, значение которого нужно взять.
да, и я том же
 

crn

Client
Регистрация
19.11.2015
Сообщения
62
Благодарностей
6
Баллы
8

Я стрелкой отметил все, что доступно об этом элементе. Больше ничего. Сейчас у него id=id-generator-1, в следующий раз другой будет.
 

crn

Client
Регистрация
19.11.2015
Сообщения
62
Благодарностей
6
Баллы
8
Может есть вариант нажать ctrl+V с клавиатуры? но тут тоже нужно как то в буфер значение из переменной записывать
 

crn

Client
Регистрация
19.11.2015
Сообщения
62
Благодарностей
6
Баллы
8
Аналогичная ситуация с Яндекс.Недвижимость. постоянная генерация нового id для своих элементов. Видимо это своего рода защита.
Кто нибудь обходил это?
 

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 882
Баллы
113
На яндекс недвижимости это точно легко всё обходится. Да и на других сайтах тоже. Просто нужно подбирать такие значения, которые будут соответствовать этому полю. Не обязательно, чтобы такое поле находилось одно, можно и номерами пользоваться. Главное, чтобы оно постоянно находилось.
 
  • Спасибо
Реакции: crn

crn

Client
Регистрация
19.11.2015
Сообщения
62
Благодарностей
6
Баллы
8
На яндекс недвижимости это точно легко всё обходится. Да и на других сайтах тоже. Просто нужно подбирать такие значения, которые будут соответствовать этому полю. Не обязательно, чтобы такое поле находилось одно, можно и номерами пользоваться. Главное, чтобы оно постоянно находилось.
а как? можете показать? уже второй день мучаюсь((
 

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