ローカルでターミナルで動かしています。
seleniumを使って楽天にログインして買い物かごにある商品を5個入れるという内容です。
headlessの部分をコメントアウトするとブラウザが目に見えて起動して思ったような結果になります。
headlessにするとかごに商品は入るのですが、商品数がなぜか倍になってしまいます。
HTML上、商品数はプルダウンでvalueと商品数が同じです。
細かく挙動を言うと、プルダウンで100まで用意されていて、1〜50は倍になり50〜100はそのままです。
require 'selenium-webdriver' options = Selenium::WebDriver::Chrome::Options.new options.add_argument('--headless') d = Selenium::WebDriver.for :chrome, options: options wait = Selenium::WebDriver::Wait.new(:timeout => 30) d.get("https://www.rakuten.co.jp/") wait.until { d.find_element(:xpath, '//*[@id="wrapper"]/div[5]/div/ul[2]/li[2]/button').displayed? } d.find_element(:xpath, '//*[@id="wrapper"]/div[5]/div/ul[2]/li[2]/button').click wait.until { d.find_element(:id, "loginInner_u").displayed? } d.find_element(:id, "loginInner_u").send_keys('メールアドレス') d.find_element(:id, "loginInner_p").send_keys('パスワード') d.find_element(:class, "loginButton").click d.get("https://item.rakuten.co.jp/kenkocom/e104166h/") Selenium::WebDriver::Support::Select.new(d.find_element(:xpath, '//*[@id="normal_basket_10852676"]/tbody/tr[3]/td/select')).select_by(:value, '5') d.find_element(:xpath, '//*[@id="normal_basket_10852676"]/tbody/tr[3]/td/span[2]/span/span[1]/button').click
わかるかたいらっしゃいましたらよろしくお願いいたします。
あなたの回答
tips
プレビュー