つれづれなるままに。

webテストの自動化について備忘録のつもりで書いています

Selenium VBA の フォーマッター

少しずつ使って見ている SeleniumVBA
SeleniumVBAで使えるものなのですが、知名度が低く
Excelからだとまだまだ、 IEをCOM経由で使うケースの方が多いですね。

が、IEは誰しもが知っている通り癖があるので、個人的にはこちらでFFをコントロールする方が良いと思う訳です。

スクリプト自体は SeleniumIDEで記録しておきvbaもしくはvbs用にエクスポートすれば
ベースとなるスクリプトが生成できるのでハードルも低いと思います。

で、どの言語用にエクスポートする際も同様なのですが RC用 と WebDriver用が選択できます。

RC用

    def test_selerc(self):
        sel = self.selenium
        sel.open("/")
        sel.type("id=sfrom", u"東京")
        sel.type("id=sto", u"大阪")
        sel.type("id=svia", u"長野")
        sel.click("id=fer")
        sel.click("id=bus")
        sel.click("id=hbus")
        sel.click("id=air")
        sel.click("id=exp")
        sel.select("id=ym", u"label=2013年08月")
        sel.click("css=input[type=\"image\"]")
        sel.wait_for_page_to_load("30000")

WebDriver用

    def test_selewd(self):
        driver = self.driver
        driver.get(self.base_url + "/")
        driver.find_element_by_id("sfrom").clear()
        driver.find_element_by_id("sfrom").send_keys("東京")
        driver.find_element_by_id("sto").clear()
        driver.find_element_by_id("sto").send_keys("大阪")
        driver.find_element_by_id("svia").clear()
        driver.find_element_by_id("svia").send_keys("長野")
        driver.find_element_by_id("fer").click()
        driver.find_element_by_id("bus").click()
        driver.find_element_by_id("hbus").click()
        driver.find_element_by_id("air").click()
        driver.find_element_by_id("exp").click()
        # ERROR: Caught exception [ReferenceError: selectLocator is not defined]
        driver.find_element_by_css_selector("input[type=\"image\"]").click()

よく見るとわかりますが、selectorコントロール部分は WebDriver版はエラーになってます。
例では python2版を表示していますが、vba版でも同様のエラーがでます。

なのでWebDriver版を使う方は手動で直す必要があります。