FirefoxのSelenium IDEで、pythonへテストケースのエクスポートを行ったところ、
クラスのクリックの処理で以下のようなエラーコードに変換されていて、処理が行われないようになっていた。
# ERROR: Caught exception [Error: unknown strategy [class] for locator [class=classname]]
表示されているフォームの中のclassではなく、jsで生成された中にあるclassだった。
Selenium IDE上での実行ではうまく動いていたが、Pythonからの実行はできない(読めないのかな?)ようです。
そのために、その生成された中を見るようにするには、
find_element_by_xpathを使うようです。
ダメだった例
driver.find_element_by_class_name("classname").click()
うまくいった例
driver.find_element_by_xpath("//*[@class='classname']").click()
これで、Firefox、Chromeの両方で動作しました。
htmlソースを表示して、該当するidなりnameなりclassなりを確かめて、指定する必要があります。
あと、操作ブラウザを変更するやり方
browser.switch_to_window(browser.window_handles[1])
time.sleep(3)
[]の数字で操作するタブを決める。1番最初に操作していたタブが数字の0から始まるり、続いて1,2…と増えていく。
参考にしたサイト
Pythonでスクレイピング3(Selenium):クレジット(MUFG)カードの支払額の取得 →消えてました。
コメント