rubyのselenium-webdriverでgmailの操作を試みた結果、なんとか動くものができたのでメモしておきます。
同様のことをC#でやっている事例はあったのですが、rubyのCSSセレクタが思うように動きませんでした。結局、CSSではなくIDを指定してボタンの操作をしました。
require 'selenium-webdriver' driver = Selenium::WebDriver.for :chrome driver.get "https://mail.google.com/a/?view=cm&tf=1&to=nokubi@gmail.com&su=test&body=test" sleep 10 #動かない。空白がまじっているから? #elem = driver.find_element(:class, "T-I J-J5-Ji aoO T-I-atl L3") #C#のCSSセレクタ書式をそのまま入れてみたがだめ #elem = driver.find_element(:css, "div[class='T-I J-J5-Ji Bq nS T-I-KE L3']>b") # div.class 形式がrubyでの書き方らしいのだけどこれもだめ #elem = driver.find_element(:css, "div.T-I J-J5-Ji Bq nS T-I-KE L3'.b") # IDなら動いた elem = driver.find_element(:id, ":pb") elem.click
URLはこんな感じの組み合わせでメールの内容を指定できます。
- https://mail.google.com/a/?view=cm&tf=1& (定型?)
- to=nokubi@gmail.com& (toに送信先アドレスを指定)
- su=test& (suにサブジェクト)
- body=test (bodyに本文)
これは”Mailto: for GMail“の拡張を参考にしました。