selenium
Selenium のWebDriverからCookieを取り出したら Seleniumで画像をだけを取り出して保存したり、ファイルを取り出すのは不便だよね。 だけど、直接Curlで叩くのもCookieの問題でもっと不便だよね。 そこでSeleniumのCookieをCurlで使える形式やNetscape形式で…
selenium + chromedriver を headlessを扱うときに困る。 新規タブを開かれると、element not clickable で、currently visibleで、 displayed がfalse になる。 なんで、クリックできないエラーになるのか頭をひねったら、width だった。 原因と再現 driver…
HTMLをPDFに変換する --print-pdf オプション HTMLをPDFに変換するコマンドは、いくつか有るけれど、 chrome のオプションだけで実現できる。 しかも chrome59 から headless オプションがあって更に便利になった。 コマンドの使い方 chrome-bin --headless …
Selenium + chromedriverで 印刷プレビューにアクセスするのが面倒くさい Chromeを webdriverでアクセスすると iframe で作られた、印刷プレビューにアクセスするのがとてもめんどくさい。(セキュリティ関連のアレコレの制限をdisableオプションで取っ払え…
chrome だけを使って、HTMLをPDFに変換します。 chrome で pdf にサイトを保存することが可能です。Seleniumのscreenshot を作らなくても、単一なページであれば、PDFにすることが可能です --print-to-pdfオプション $ alias chrome='/Applications/Google C…
headless で動かしてる chrome でエラーが出る。 最初、なんのエラーかわからず悶絶してた。理由がわかったので書いておきます。 リサイズすると次のようなエラーに driver.manage.window.resize_to(1200,1200) エラー Selenium::WebDriver::Error::UnknownE…
seleniumでモバイルエミュレーションを使いたい ChromeのWebDriverでモバイル・エミュレーションを使えれば便利なのに。回線速度とか、画面の回転とか、画面のサイズとか、逐次セットするのは面倒なので、セットになってるモバイル・エミュレーション機能を…
Selenium から 開発者ツールにアクセスしたい。 DevtoolsがChromeで閉じられちゃうので、なんとかならないのかなと思って調べてた。 パフォーマンスタブにアクセスできる driver.execute_script("return window.performance.getEntries();") これでなんとか…
selenium でリンクの指定が楽になった。 ドキュメントを読んでたら、良いものを見つけた 今までのやり方。 driver.find_element(:xpath, "//a[contains(./text(), 'ログイン')]") driver.find_element(:xpath, "//a[./text()='ログイン']") 今回知ったやり方…
Selenium で フォーム送信 するには。 若干のWaitを入れてあげるとうまく動くと思う。 driver.goto 'https://example.com/login' wait = Selenium::WebDriver::Wait.new(:timeout => 3) # second ## ページロードを待つ wait.until { driver.xpath('//*[@id=…
selenium 使おうとしたらエラーになった。 >> require 'selenium-webdriver' => true >> driver = Selenium::WebDriver.for :chrome , :desired_capabilities => caps NameError: undefined local variable or method `caps' for main:Object from (pry):2:i…
毎回・毎回ログイン処理を待つのを面倒くさいんですよね。 テスト時はログイン処理が必要だけど、テスト書いてる時は省略したいですよね なので、プロファイルを指定すれば前回のCookieやらパスワード保存が使える それなりに便利 #!/usr/bin/env ruby ## re…
Javascript でクリックイベントを起こす。 クリックイベントを起こさないとテストできないページが有る。 クリックイベントをFireするには、initEvent と dispatch イベントを使う。 マウスイベント var me = document.createEvent("MouseEvents") me.initMo…