【发布时间】:2018-04-07 08:46:30
【问题描述】:
我是 Nokogiri 的新手,需要找到下面代码的选定选项。在下面复制/粘贴时,粉红色是选择的选项,但 HTML 中没有任何内容表明这一点。
现在我以前使用过:page.at('select[name="Color"] option:not(:first-of-type)[@selected]').text(类似的方法可以在这里找到:Nokogiri: how to find the selected option of <select>?)来查找所选选项的值,但是对于我试图抓取的这个特定站点,没有@ 987654323@.
在过去使用 jQuery 进行抓取时,我使用了 $('select').children("option:not(:first-of-type)").filter(":selected").text();,它设法绕过了这个问题,但是在 Nokogiri 中添加一个 CSS 选择器,比如 page.at(".variation-trait[aria-label='Select Color'] option:selected").text 对我来说也没有效果。
任何帮助将不胜感激。
<select class="variation-trait" aria-label="Select Color" id="trait-0" data-bhw="VariationsTrait:color" data-bhw-path="FeaturedDeal|deal:73dcb228-e425-11e7-bf04-00259060b5da|VariationsWidget|success:variations-displayed|VariationsTrait:color">
<option class="variation-option" value="Select Color" id="trait-0-0" data-bhc="option:select-color">
Select Color
</option>
<option class="variation-option force-display" value="Black" id="trait-0-1" data-bhc="option:black" disabled="disabled"><span class="sold-out-text">(SOLD OUT)</span>
Black
</option>
<option class="variation-option" value="White" id="trait-0-2" data-bhc="option:white">
White
</option>
<option class="variation-option" value="Blue" id="trait-0-3" data-bhc="option:blue">
Blue
</option>
<option class="variation-option" value="Gray" id="trait-0-4" data-bhc="option:gray">
Gray
</option>
<option class="variation-option" value="Pink" id="trait-0-5" data-bhc="option:pink">
Pink
</option>
</select>
【问题讨论】: