Nokogiri:如何找到当<select>选择="selected"不存在时的选定选项



我是Nokogiri的新手,需要找到下面代码的选定选项。在下面复制/粘贴时,选择了粉红色选项,但 HTML 中没有任何内容表明这一点。

现在以前我用过:page.at('select[name="Color"] option:not(:first-of-type)[@selected]').text(类似的方法可以在这里找到:Nokogiri:如何找到<选择>的选定选项? 找到所选选项的值,但是对于我尝试抓取的这个特定站点,没有selected = "selected".

过去使用 jQuery 进行抓取时,我使用过设法绕过此问题的$('select').children("option:not(:first-of-type)").filter(":selected").text();,但是像 page.at(".variation-trait[aria-label='Select Color'] option:selected").text 一样在 Nokogiri 中添加一个 CSS 选择器对我来说也没有用。

任何帮助将不胜感激。

 <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>

如果没有[selected]选项,那么它是第一个,所以:

page.at('option[selected]') || page.at('option')

相关内容

  • 没有找到相关文章

最新更新