それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

selenium

SeleniumのWebDriver(chrome)からCookieを取りだしてHTTP::CookieにしたりCurlで再利用する

Selenium のWebDriverからCookieを取り出したら Seleniumで画像をだけを取り出して保存したり、ファイルを取り出すのは不便だよね。 だけど、直接Curlで叩くのもCookieの問題でもっと不便だよね。 そこでSeleniumのCookieをCurlで使える形式やNetscape形式で…

selenium で chrome ヘッドレスで新規タブの要素をクリックできない

selenium + chromedriver を headlessを扱うときに困る。 新規タブを開かれると、element not clickable で、currently visibleで、 displayed がfalse になる。 なんで、クリックできないエラーになるのか頭をひねったら、width だった。 原因と再現 driver…

chrome でHTML をPDFに変換する

HTMLをPDFに変換する --print-pdf オプション HTMLをPDFに変換するコマンドは、いくつか有るけれど、 chrome のオプションだけで実現できる。 しかも chrome59 から headless オプションがあって更に便利になった。 コマンドの使い方 chrome-bin --headless …

Seleniumで印刷(print preview)を経てPDFを保存する方法

Selenium + chromedriverで 印刷プレビューにアクセスするのが面倒くさい Chromeを webdriverでアクセスすると iframe で作られた、印刷プレビューにアクセスするのがとてもめんどくさい。(セキュリティ関連のアレコレの制限をdisableオプションで取っ払え…

chromeの起動オプションでページをHTML→PDFで保存する。

chrome だけを使って、HTMLをPDFに変換します。 chrome で pdf にサイトを保存することが可能です。Seleniumのscreenshot を作らなくても、単一なページであれば、PDFにすることが可能です --print-to-pdfオプション $ alias chrome='/Applications/Google C…

chrome(webdriver)を headless はリサイズできないので、初期値で決めて解決させる

headless で動かしてる chrome でエラーが出る。 最初、なんのエラーかわからず悶絶してた。理由がわかったので書いておきます。 リサイズすると次のようなエラーに driver.manage.window.resize_to(1200,1200) エラー Selenium::WebDriver::Error::UnknownE…

Selenium でモバイルエミュレーション

seleniumでモバイルエミュレーションを使いたい ChromeのWebDriverでモバイル・エミュレーションを使えれば便利なのに。回線速度とか、画面の回転とか、画面のサイズとか、逐次セットするのは面倒なので、セットになってるモバイル・エミュレーション機能を…

selenium で Google Chromeの開発者ツールにアクセスする

Selenium から 開発者ツールにアクセスしたい。 DevtoolsがChromeで閉じられちゃうので、なんとかならないのかなと思って調べてた。 パフォーマンスタブにアクセスできる driver.execute_script("return window.performance.getEntries();") これでなんとか…

selenium で parital text/ link_text を指定すれば楽ができる!!!!

selenium でリンクの指定が楽になった。 ドキュメントを読んでたら、良いものを見つけた 今までのやり方。 driver.find_element(:xpath, "//a[contains(./text(), 'ログイン')]") driver.find_element(:xpath, "//a[./text()='ログイン']") 今回知ったやり方…

Selenium で フォーム送信

Selenium で フォーム送信 するには。 若干のWaitを入れてあげるとうまく動くと思う。 driver.goto 'https://example.com/login' wait = Selenium::WebDriver::Wait.new(:timeout => 3) # second ## ページロードを待つ wait.until { driver.xpath('//*[@id=…

Selenium使おうとしたらchromedriverが古くてエラーになった。

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…

ruby selenium webdriverでプロファイルを毎回同じものにする。

毎回・毎回ログイン処理を待つのを面倒くさいんですよね。 テスト時はログイン処理が必要だけど、テスト書いてる時は省略したいですよね なので、プロファイルを指定すれば前回のCookieやらパスワード保存が使える それなりに便利 #!/usr/bin/env ruby ## re…

JSでマウスイベント(クリック)を起こす/ mouseEvent を Dispatch して起動する

Javascript でクリックイベントを起こす。 クリックイベントを起こさないとテストできないページが有る。 クリックイベントをFireするには、initEvent と dispatch イベントを使う。 マウスイベント var me = document.createEvent("MouseEvents") me.initMo…