over the rainbow

いわゆる日記です

Selenium初体験

f:id:nij:20191212143442p:plain:w300
note.com
を読んで、Seleniumって言葉を初めて知った。
で、勉強してみたいと思った。
Pythonも名前しか知らなかったので、こっちも勉強してみたい。
ちなみに、(直接は関係ないけど)最近RPAって言葉が流行っていて、わが社の本社からも「なんかやれることないか、探れこのやろー」とお達しがあったので、そっちもUiPathとかお試しインストールしてみて探っているところ。もちろん、実際は丁寧な言葉で言われています。

で、今あるシステムのうち、IE限定のシステムがあり、その作業をまずは自動化してみようと思って、
bitwave.showcase-tv.com
を見ながら、WebDriverとやらの設定をしてみた。これで合っているのかすらもよくわかっていないけど。

まずは、同ページに書いてある7行ほどのスクリプトを動かしてみたら

public Class test {
^
SyntaxError: invalid syntax

3行目でエラーが出たみたい。
構文が違うのか。構文を調べないでコピー&ペーストでやっているだけだからな。
って、そもそもphthonのコードだよ。なんて一言も書いてないな。なんか思い込みでpythonだと思ってしまっただけか。


次に
qiita.com
に書いてある3行のtest.pyを動かしてみたところ

selenium.common.exceptions.WebDriverException: Message: unknown error: cannot find Chrome binary

という返答。
これはPortable版のGoogle Chromeを使っているのが悪いんだろうと思うのでokとする。


次に
qiita.com
を見ながら

# webdriver の情報
from selenium import webdriver
# html の タブの情報を取得
from selenium.webdriver.common.by import By
# キーボードを叩いた時に web ブラウザに情報を送信する
from selenium.webdriver.common.keys import Keys
# 次にクリックしたページがどんな状態になっているかチェックする
from selenium.webdriver.support import expected_conditions as EC
# 待機時間を設定
from selenium.webdriver.support.ui import WebDriverWait
# 確認ダイアログ制御
from selenium.webdriver.common.alert import Alert


driver = webdriver.Ie(r"C:\foobar\WebDriver\IEDriverServer.exe")
driver.close()
driver.get('http://www.python.org')

とやってみたら、http://www.python.orgではなくhttp://localhost:65026/を開こうとして

selenium.common.exceptions.WebDriverException: Message: Failed to navigate to http://www.python.org. This usually means that a call to the COM method IWebBrowser2::Navigate2() failed. The error returned is: Received error: 0x80004005 ['エラーを特定できません']

エラーが出ているみたいな。よくわからないけど。

追記:

その後、何回かやってみたけど、5桁のランダムなポートを付けたlocalhostを開こうとしちゃうみたいだな。http://localhost:55819/http://localhost:56108/http://localhost:56140/など。
何でこうなっちゃうんだろうか。
ひょっとするとウィルスバスターコーポレートが悪さをしている?