私はフォームを記入して結果を得るウェブスクレイピング用のwatir webドライバを使用しています。結果には、現在選択されているテキストを抽出する必要があるドロップダウンリストも含まれています。私は以下のクエリを使用しました。私は次のクエリを使用することができます。このことからWatirウェブドライバが選択項目をドロップダウンするのに時間がかかりすぎる
selectedList = browser.select_list(:id => "itemType")
:このクエリを使用して
selectedText = selectedList.selected_options.map(&:text)[0]
を、私が選択したテキストを取得することができています。しかし問題は、ドロップダウンリストには何千ものオプションが含まれており、このクエリを使用して選択されたオプションを見つけるには時間がかかりすぎるということです。
これより高速な方法があれば幸いです。 はまた、私は次のクエリを試してみました:
selected = selectedList.selected_options()[0]
selectedText = selected.text
しかし、問題は同じです。私はこれらのクエリの両方が良好に実行されているが、何千ものオプションを持つ、より小さいオプションを持つ他のドロップダウンを持っています。
このような優れた回答! – RAJ
@Justin Ko:あなたの偉大な答えをありがとう、魅力のように動作します。 – Dharma
私は、このオプションを評価するためにSeleniumを使用しても、別の利点があるとは思わないので、このjavascriptソリューションがWatirのデフォルトの実装であることを提案するこのPR(https://github.com/watir/watir/pull/540)を作成しました。正解であるかどうかは分かりませんが、この代替案を提示していただきありがとうございます。 – titusfortner