Upgrade to Pro — share decks privately, control downloads, hide ads and more …

クロスブラウザテストの闇と闇と闇

tsuemura
October 29, 2019

 クロスブラウザテストの闇と闇と闇

https://d-cube.connpass.com/event/149831/

スライド中「エンジニアの斎藤」という謎の人物が出てきますが、「エンジニアの採用」の誤記でございました。お詫び申し上げます。

tsuemura

October 29, 2019
Tweet

More Decks by tsuemura

Other Decks in Programming

Transcript

  1. 「IEはもうオワコンなのでEdgeが使えれば⼤丈夫です」 Edge(EdgeHTML)18からインストール⽅法が変更になりました Windowsの設定で「開発者モード」を有効にする必要があります 管理者権限でコマンドプロンプトを実⾏して DISM.exe /Online /Add-Capability /CapabilityName:Microsoft.WebDriver~~~~0.0.1.0 を実⾏するとインストールされ ます

    インストール先が公式のどこにも書いてありません(︕) ので書いておきますが C:\Windows\System32\MicrosoftWebDriver.exe です 先述のNodeJSのライブラリ selenium-standalone はこの⽅式に対応してないので ⾃前でインストールする必要があります
  2. URLにBasic認証情報を埋め込む driver.get('https://admin:[email protected]/basic_auth') element = driver.find_element_by_css_selector('h3') print(element.text) Chrome: スキップできる Firefox: スキップできる

    Edge: スキップできる IE: スキップできる Safari: スキップ できない Safariは過去のバージョンではスキップできたようですが、少なくとも現在の最新バー ジョン(12)ではスキップできませんでした
  3. ならばHTTP Headerを追加しよう 認証情報をBase64にエンコードし、リクエストごとに Authorization: dXNlcm5hbWU6cGFzc3dvcmQ= のようなHTTPヘッダを付け加えることで認証プロンプトを スキップできる しかし、Seleniumには setHeader() みたいなメソッドはない

    どうしてもやりたい場合はプロキシサーバを⽴てる必要がある プロキシを経由し、HTTPヘッダを偽装するとSSLの証明書検証に失敗する いわゆるMan In The Middle Attackと同じ状態になる 回避するための acceptInsecureCerts というCapabilityがある AppiumではCapabilityではなくAppium Desktopの設定を変更する必要がある iOS13のSafariは正しく設定してもなお動きません(未解決) 知ってる⽅こっそり教えて下さい
  4. WebDriver的にはどうなんだっけ https://w3c.github.io/webdriver/#get-element-text The Get Element Text command intends to return

    an element’s text “as rendered”. Get Element Text は要素のテキストを「レンダリングされた通りに」返します
  5. というわけで、NBSPがどのように扱われるか各ブラウザで検証してみましょ う driver.get('https://tsuemura.github.io/webdriver-is-muzukashii/gettext.html') text1 = driver.find_element_by_id("text1").text # 半⾓スペースを使ったテキスト text2 =

    driver.find_element_by_id("text2").text # NBSPを使ったテキスト print(text1 == text2) Chrome: 半⾓スペースになる Firefox: 半⾓スペースになる Internet Explorer︓ 半⾓スペースになる Edge: NBSPのまま Safari: NBSPのまま ※Edgeはバージョン18で「半⾓スペースになる」に修正されました