Могу ли я выбрать динамически генерируемый элемент option с помощью элемента управления webbrowser C#
Я использую элемент управления C# webbrowser для навигации по коммерческому веб-сайту, с которым работаю. Я вхожу в систему и перехожу к определенному списку. Список-это перспективные рабочие места. Затем я продолжаю просматривать некоторые ссылки, чтобы сделать ставку на эти вакансии. В процессе я столкнулся с проблемой.
На одной из форм есть 2 элемента выбора (выпадающие списки). Параметры в этих списках генерируются динамически с помощью некоторых скриптов javascript , большинство из которых доступны в исходном коде.
В исходном коде страницы выбирать нечего. Параметры отображаются динамически при навигации по странице вручную, но я пытаюсь перемещаться по ней с помощью c# в веб-браузере.
Вот форма. (Я вырезал стили и изменил часть текста - и я знаю, что он плохо сформирован, но он не мой)
<form name="frm1" id="frm1" action="/tab/Transport/LoadAssigned2.asp" method="post"> <table class="section"> <tr> <td>Name</td> <td> <input type="text" name="s_name" id="s_name" size="25" maxlength="50"></td> </tr> <tr> <td>Fax</td> <td> <input type="text" name="txtFaxNumber" id="txtFaxNumber" size="25" maxlength="15" value="1234567890"></td> </tr> <tr> <td>Email</td> <td> <input type="text" name="txtEmail" id="txtEmail" size="25" maxlength="225"></td> </tr> <tr> <td>Pickup will occur on or before</td> <td> <select name="stransp_pickup_date" id="stransp_pickup_date" onchange="setDeliveryDate()"> </select> </td> <tr> </tr> <td>Delivery will occur on or before</td> <td> <select name="stransp_delivery_date" id="stransp_delivery_date"> </select> </td> </tr> </table> <input type="hidden" name="nload_id" id="nload_id" value="123456789"> </form>
Как вы можете видеть, два элемента select не имеют дочерних элементов option. Они создаются скриптами, начиная с setDeliveryDate:
function setDeliveryDate(){ var distance = 226; var delivery = $("#stransp_delivery_date"); var pickupDate = $("#stransp_pickup_date option:selected").val(); $("#stransp_delivery_date option").remove(); delivery.append("<option value='-1'>SELECT DATE</option>"); if(distance <=200){ generateDeliveryDates(delivery,pickupDate,2); }else if(distance >=201 && distance <= 400){ generateDeliveryDates(delivery,pickupDate,3); }else if(distance >=401 && distance <= 700){ generateDeliveryDates(delivery,pickupDate,4); }else if(distance >=701 && distance <= 1400){ generateDeliveryDates(delivery,pickupDate,5); }else if(distance >=1401 && distance <= 1800){ generateDeliveryDates(delivery,pickupDate,6); }else if(distance >=1801 && distance <= 2200){ generateDeliveryDates(delivery,pickupDate,7); }else if(distance >=2201 && distance <= 2500){ generateDeliveryDates(delivery,pickupDate,8); }else if(distance >=2501 && distance <= 4000){ generateDeliveryDates(delivery,pickupDate,9); } }
А функции generateDeliveryDates-это:
function generateDeliveryDates(delivery,pickupDate,index){ for (var i = 0; i < index; i++) { if (moment(pickupDate).add('days', i).format('dddd') == 'Sunday') { index++; delivery.append("<option value='" + moment(pickupDate).add('days', i).format('MM/DD/YYYY') + "'>" + moment (pickupDate).add('days', i).format('dddd')+" - "+ moment(pickupDate).add('days', i).format('MM/DD/YYYY') + "</option>"); } else { delivery.append("<option value='" + moment(pickupDate).add('days', i).format('MM/DD/YYYY') + "'>" + moment (pickupDate).add('days', i).format('dddd')+" - "+ moment(pickupDate).add('days', i).format('MM/DD/YYYY') + "</option>"); } }; }
Если бы я мог продолжать показывать больше сценариев - но я надеюсь, что идея ясна. Параметры выбора элементов, созданных на основе события onChange в первом выберите элемент. Это список дат.
Что я хочу сделать,так это выбрать последний из вариантов даты в обоих случаях - но я не вижу, как это сделать до того, как он появится. Кроме того, количество вариантов в списке варьируется в зависимости от расстояния, как вы можете видеть выше.
Очень благодарен за любую помощь или руководство.
Что я уже пробовал:
Ничего - в полной растерянности.