Nokogiri:当select =&#34;选择&#34;时,如何找到<select>的选定选项不存在

时间:2018-04-06 16:34:18

标签: ruby nokogiri

我是Nokogiri的新手,需要找到下面代码的选定选项。在下面复制/粘贴时,Pink是选中的选项,但HTML中没有任何内容表明这一点。 现在我以前使用过:page.at(&#39;选择[name =&#34; Color&#34;]选项:not(:first-of-type)[@ selected]&#39;)。text(类似的方法可以在这里找到:Nokogiri:如何找到所选选项&lt; select&gt;?)来查找所选选项的值,但对于我试图刮去的这个特定网站,没有选中=&#34;选择&#34;。 在过去使用jQuery进行抓取时,我使用了$(&#39; select&#39;)。children(&#34;选项:not(:first-of-type)&#34;)。 (&#34;:选择&#34)。文本();设法绕过这个问题,但在Nokogiri中添加一个CSS选择器,如page.at(&#34; .variation-trait [aria-label =&#39;选择颜色&#39;]选项:选择&#34;)。也不是为我做这个伎俩。 任何帮助,将不胜感激。  &lt; select class =&#34; variation-trait&#34; aria-label =&#34;选择颜色&#34; ID =&#34;性状-0&#34;数据BHW =&#34; VariationsTrait:彩色&#34;数据BHW路径=&#34; FeaturedDeal |交易:73dcb228-e425-11e7-bf04-00259060b5da | VariationsWidget |成功:变化显示的| VariationsTrait:彩色&#34;&GT;      &lt; option class =&#34; variation-option&#34; value =&#34;选择颜色&#34; ID =&#34;性状-0-0&#34;数据-BHC =&#34;选项:选择色&#34;&GT;           选择颜色      &LT; /选项&GT;      &lt; option class =&#34; variation-option force-display&#34;值=&#34;黑色&#34; ID =&#34;性状-0-1&#34;数据-BHC =&#34;选项:黑色&#34;已停用=&#34;已停用&#34;&gt;&lt; span class =&#34;已售完文本&#34;&gt;(售完)&lt; / span&gt;           黑色      &LT; /选项&GT;      &lt; option class =&#34; variation-option&#34;值=&#34;白色&#34; ID =&#34;性状-0-2&#34;数据-BHC =&#34;选项:白色&#34;&GT;           白色       &LT; /选项&GT;       &lt; option class =&#34; variation-option&#34;值=&#34;蓝色&#34; ID =&#34;性状-0-3&#34;数据-BHC =&#34;选项:蓝色&#34;&GT;           蓝色       &LT; /选项&GT;       &lt; option class =&#34; variation-option&#34;值=&#34;格雷&#34; ID =&#34;性状-0-4&#34;数据-BHC =&#34;选项:灰色&#34;&GT;           灰色       &LT; /选项&GT;       &lt; option class =&#34; variation-option&#34;值=&#34;粉红&#34; ID =&#34;性状-0-5&#34;数据-BHC =&#34;选项:粉红色&#34;&GT;           粉       &LT; /选项&GT;  &LT; /选择&GT;

1 个答案:

答案 0 :(得分:0)

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

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