【发布时间】:2021-05-24 22:48:07
【问题描述】:
我是 Selenium 和 Java 的新手,我正在尝试通过 CSS 选择器选择 nth 元素。
我想从下面的代码中获取所需的值并将它们保存以供进一步使用。我已经成功使用了看起来像这样的 XPATH
//*[@class='search-result__advert' and not(@id)][i](i = 第 n 个元素)
我正在尝试通过 CSS 选择器获取值,但我想出了这个(没有按预期工作)
.search-result__advert:not([id]):not([data-ad-show]):nth-child(i)(我也试过:nth-of-type(i))
我对@987654325@ 的期望: 第三个没有id属性且没有data-ad-show属性的元素被选中,其值为Desired value 3。 p>
相反,我得到 org.openqa.selenium.NoSuchElementException: Unable to locate element: .search-result__advert:not([id]):not([data-ad-show]):nth-child(3) 它适用于 i=1、i=2、i=5。
<ul class="search-result list-unstyled">
<li class="search-result__advert">
<div class="grid grid--rev">
<p>Desired value 1</p>
</div>
</li>
<li class="search-result__advert">
<div class="grid grid--rev">
<p>Desired value 2</p>
</div>
</li>
<li class="search-result__advert" id="signUpWrapper">
<div id="signUpSavedSearch" class="grid">
<p>Advertisment 1</p>
</div>
</li>
<li class="search-result__advert hidden" data-ad-show="ad_list_middle">
<div class="ad" id="ad_list_middle">
<p>Advertisment 2</p>
</div>
</li>
<li class="search-result__advert">
<div class="grid grid--rev">
<p>Desired value 3</p>
</div>
</li>
<li class="search-result__advert">
<div class="grid grid--rev">
<p>etc. etc.</p>
</div>
</li>
</ul>
【问题讨论】: