~/blog/overview-and-usage-of-selenium-webdriver-in-ruby
Published on

RubyにおけるSelenium Webdriverの概要・使用方法

1478文字3分で読めます–––
閲覧数
Authors
  • avatar
    Name
    Shou Arisaka nyapp.buzz/shou
    short bio
    Z世代の情報技術者。Next.jsで自作SNSを個人開発中。

webdriverではブラウザのオートメーションが可能。 UIテストなどの他、色々勝手にブラウザ操作をやってもらうのにも重宝する。

インストール

gem install selenium-webdriver

リファレンス

https://github.com/SeleniumHQ/selenium/wiki/Ruby-Bindings http://seleniumhq.github.io/selenium/docs/api/rb/_index.html

element クラスメソッド

Selenium::WebDriver::Element。clickやsend_keyなどがよく使われる。

http://seleniumhq.github.io/selenium/docs/api/rb/Selenium/WebDriver/Element.html

一定時間の待機

要素が出現するまで待機させることが可能

明示的待機

  wait = Selenium::WebDriver::Wait.new(timeout: 3)
  wait.until { driver.find_element(id: "cheese").displayed? }

暗黙的待機

  driver = Selenium::WebDriver.for :firefox
  driver.manage.timeouts.implicit_wait = 3 # seconds

javaScriptのダイアログ処理

You can use WebDriver to handle Javascript alert(), prompt() and confirm() dialogs. The API for all three is the same.

アラートなどを処理させることができる。アラートのオートメーション妨害を防ぐことが可能。

サンプル

driver.find_element(name: 'element_with_alert_javascript').click
a = driver.switch_to.alert
if a.text == 'A value you are looking for'
  a.dismiss
else
  a.accept
end

デバッグ

フルログを出力する Selenium::WebDriver.logger.level = :debug

ファイルへ書き出す Selenium::WebDriver.logger.output = 'selenium.log'

avatar

Shou Arisaka

情報技術者 / Z世代プログラマー / SaaSアプリやSNSを開発
今すぐ話そう!

15歳でWordPressサイトを立ち上げ、ウェブ領域に足を踏み入れる。翌年にはRuby on Railsを用いたマイクロサービス開発に着手し、現在はデジタル庁を支えたNext.jsによるHP作成やSaaS開発のプロジェクトに携わりながら、React.js・Node.js・TypeScriptによるモダンなウェブアプリの個人開発を趣味でも行う。
フロントエンドからバックエンドまで一貫したアジャイルなフルスタック開発を得意とし、ウェブマーケティングや広告デザインも必要に応じて担当、広告運用・SEO対策・データ分析まで行う低コストかつ高品質な顧客体験の提供が好評。
国内外から200万人を超える人々に支えられ、9周年を迎えるITブログ「yuipro」の開発者、デザイナーでありライター。現在ベータ段階の自作SNS「nyapp.buzz」を日本一の国産SNSとするべく奮闘中。

Created with Fabric.js 5.2.4 何かご質問がありますか?