■分からないこと
seleniumの練習でgoogle検索をして、検索結果のタイトルテキストを取得してCSVを作成するというのをやっています。
検索結果の1ページだけなら出来たのですが、検索結果数に関わらず2ページ目以降も取得する方法がわかりません。
find_elementsで取得結果のページ数だけクリックしようと思ったのですが、class名が他でも使われており指定方法も分からなかったです。
ご教授いただけますようお願い致します。
Ruby
1require 'selenium-webdriver' 2require 'byebug' 3require 'csv' 4 5def exec(driver) 6 elements = driver.find_elements(:class, 'LC20lb') 7 @value = [] 8 if elements.size > 0 9 elements.each do |e| 10 @value << e.text 11 end 12 end 13 headers = ["title"] 14 CSV.open("google_test.csv", "a", write_headers: true) do |csv| 15 csv << headers 16 @value.each do |idx| 17 csv << [idx] 18 end 19 end 20end 21 22wait = Selenium::WebDriver::Wait.new(timeout: 10) 23driver = Selenium::WebDriver.for :chrome 24driver.navigate.to "http://google.com" 25wait.until {driver.find_elements(:xpath, '//*[@id="tsf"]/div[2]/div/div[1]/div/div[1]/input')} 26driver.find_element(:xpath, '//*[@id="tsf"]/div[2]/div/div[1]/div/div[1]/input').send_keys("サンプル");sleep 1 27driver.find_element(:name, 'btnK').click;sleep 2 28 29driver.find_element(:xpath, '//*[@id="nav"]/tbody/tr/td[3]/a').location_once_scrolled_into_view 30exec(driver) 31 32driver.quit 33
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/04/16 03:19