とあるフォームの入力テストが数十項目。各ブラウザで。こんなもん手動じゃやっていられない、ということでSeleniumを使いテストを自動化した。
・・・したんだけど、IEがSSLエラーで止まる。
このページもHTMLなんだから、リンククリックさせればいけるんじゃね?…と思ったけど甘かった。この画面ではfind_element_xxx系は全く動かないし、execute_script()でjavascriptを動かそうとしてもダメ。困った。
調べたら、同じことで悩んでいる人いるじゃないですか。
java – how to over come ssl certifcate error for selenium web driver in Internet Explorer – Stack Overflow |
// check if your driver is IEDriver and driver’s Title contains “Certificate”
// then
driver.navigate().to(“javascript:document.getElementById(‘overridelink’).click()”);
driver.findElement(By.name(“username”)).sendKeys(“Admin1”);
driver.findElement(By.name(“password”)).sendKeys(“Password2”);
ああなるほど、ロケーションバーからjsを無理矢理実行しているのか。やってみよう。
と思ったら動かない。あれれ?
どうやらPython版のWebdriverには navigate() がないらしい。えー?で、色々試したら get() で実行できた。なんだ。
#!/usr/bin/env python #-*- coding:utf-8 -*- import time from selenium import webdriver ie = True driver = webdriver.Firefox() driver.get('https://hoge.fuga.com/') # SSLエラーが出るページへ移動 if ie: driver.get('javascript:if(document.title.match(/certificate/i)){ document.getElementById("overridelink").click() }') time.sleep(1)
IEのSSLエラーを無視したい方はお試しあれ。