首页 > 解决方案 > 网站上第一个下拉菜单的 CSS 选择器

问题描述

在 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

标签: excelvbacss-selectors

解决方案


假设默认值首先是活动的,然后使用更快的类选择器

.wrapperDropdown.active

否则,将现有的缩短到

.wrapperDropdown[tabindex='1']

确保使用单引号整数或加倍“。

要选择一个项目,因为它们是您需要单击的锚标签,并且可以使用 nth-of-type 来索引 li 节点

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

推荐阅读