■分からないこと
あるサイトからseleniumで情報を取得しCSVを作成しようと考えています。
途中、"破産手開3"という文字列が入っている項目のみクリックしてページを開くという動作をしたいです。
■取り組んだこと
下記のように判定する文字列が入った配列と、クリックしたいボタンの配列を2つ作り、それをeacnで処理しようとしました。
・クリックするボタンのxpath
elements_text = driver.find_elements(:xpath, '//a[contains(text(), "テキスト")]')
・クリックしたい文字列が入ったxpath
elements_hasan3 = driver.find_elements(:xpath, '//td[contains(text(), "破産手開3")]')
■上手くいかないこと
eachを2回やってしまうと二重で処理をしてしまうので正しい数が得られません。
やり方をご教授いただきたくよろしくお願い致します。
Ruby
1elements_text = driver.find_elements(:xpath, '//a[contains(text(), "テキスト")]') 2elements_hasan3 = driver.find_elements(:xpath, '//td[contains(text(), "破産手開3")]') 3 4elements_hasan3.each do |hasan| 5 if hasan.text == "破産手開3" 6 elements_text.each do |e| 7 e.click; sleep 2 8 driver.find_element(:id, 'scrollUp').displayed? 9 window = driver.window_handles.last 10 driver.switch_to.window(window) 11 iframe = driver.find_element(:id, 'contentF') 12 driver.switch_to.frame(iframe) 13 filter_bankrupt(driver) 14 driver.close;sleep 2 15 driver.switch_to.window(base_window) 16 end 17 else 18 next 19 end 20end
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/04/30 08:01