CSS Селектор для первого выпадающего на сайте - PullRequest
0 голосов
/ 03 мая 2020

На странице HTML, просматривая раскрывающийся список, я нажимаю Ctrl + F, чтобы найти раскрывающийся селектор css, и это похоже на

div .wrapperDropdown

Но я нашел два вниз списки с тем же селектором css. первый имеет индекс табуляции = 1, а второй - индекс табуляции = 2 Как обращаться к первому, чей индекс табуляции = 1

<div class="dropDownDiv">

<div class="wrapper-demo">
<div class="wrapperDropdown icon-downArrow active" tabindex="1">
<span>السعودية</span>
<ul class="dropdown" id="ulCountryList">
<li><a class="Country" countryid="1">مصر</a></li>
<li><a class="Country" countryid="13">السعودية</a></li>
<li><a class="Country" countryid="14">الإمارات</a></li>
<li><a class="Country" countryid="15">المغرب</a></li>
<li><a class="Country" countryid="17">تونس</a></li>
<li><a class="Country" countryid="18">العراق</a></li>
<li><a class="Country" countryid="19">البحرين</a></li>
<li><a class="Country" countryid="20">الكويت</a></li>
<li><a class="Country" countryid="21">الجزائر</a></li>
<li><a class="Country" countryid="23">سلطنةعمان</a></li>
<li><a class="Country" countryid="24">قطر</a></li>
<li><a class="Country" countryid="27">لبنان</a></li>
<li><a class="Country" countryid="28">الأردن</a></li>
</ul>
</div>
</div>

<div class="wrapper-demo">
<div class="wrapperDropdown icon-downArrow" tabindex="2">
<span>الرياض</span>
 <ul class="dropdown" id="ulCityList">
<li><a class="City" cityid="27">جدة</a></li>
<li><a class="City" cityid="28">الرياض</a></li>
<li><a class="City" cityid="29">مكة</a></li>
<li><a class="City" cityid="85">الجبيل</a></li>
<li><a class="City" cityid="86">الدمام</a></li>
<li><a class="City" cityid="87">الظهران</a></li>
<li><a class="City" cityid="88">الخبر</a></li>
<li><a class="City" cityid="89">المدينه</a></li>
</ul>

</div>
</div>
</div>

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

Dim ie          As New InternetExplorer
Dim html        As HTMLDocument
Dim drp         As HTMLFormElement
Dim x           As Long
Dim e, r As Long

ie.Visible = True
ie.Navigate "https://www.masrawy.com/Islameyat/Prayer-Times"
Do While ie.readyState <> READYSTATE_COMPLETE: DoEvents: Loop
Set html = ie.document

Set drp = html.querySelector("div .wrapperDropdown[tabindex='1']")

drp.selectedIndex = 2

1 Ответ

1 голос
/ 03 мая 2020

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

.wrapperDropdown.active

В противном случае, сократите существующий до

.wrapperDropdown[tabindex='1']

, убедившись, что вы используете одинарные кавычки вокруг числа или удваиваете на ".

Чтобы выбрать элемент, так как он является тегами привязки, нужно щелкнуть мышью и использовать nth-of-type для индексации в узлах li

html.querySelector(".wrapperDropdown[tabindex='1'] li:nth-of-type(2) a").Click
...