Rubyコードの改修作業; Selenium-Webdriverのoptionsとxpathによるボタン操作
前任者が残したRubyのソースコードが、Seleniumのバージョン変更により
うまく動作しなくなったので、改修を試みた。
一時間ほど格闘し、即興で書きなおしたのだが、
肝は
1. Selenium-WebDriverでChromeに渡すOptionは、
chromeOptionsではなぜかうまくいかず、
options = Selenium::WebDriver::Chrome::Options.new options.add_argument('--headless') options.add_argument('--disable-gpu') options.add_argument('--no-sandbox') options.add_argument('--window-size=1280x800') options.add_argument('--disable-popup-blocking')
として列挙していく必要があった。
2. スクレイピングを実施する対象のHPの入力項目が増えており、
それに合わせてソースを修正した。具体的にはパスワードのみでは入れなくなり、
user_idとsite_idも入れなくてはならなくなった。
]
#!"C:\Ruby27\bin\ruby.exe" # encoding: UTF-8 cgi = CGI.new() url = cgi['name'] USER_ID = 'r000001' user_id = driver.find_element(:name, 'id') user_id.send_keys(USER_ID) PASSWORD = '1234' pass = driver.find_element(:name, 'password') pass.send_keys(PASSWORD) SITE_ID = 'site1' site_id = driver.find_element(:name, 's_id') site_id.send_keys(SITE_ID) adm_login_button = driver.find_element(:name, 'adm_login') adm_login_button.click driver.find_element(:css, 'input[type="submit"]').click driver.navigate.to (url) driver.save_screenshot('screenshot_img.png')