以下を使用しています: Selenium 2.33.0、Python 2.7.3、Firefox 21.0、Debian Wheezy:
セレンを使用して、サイトからログアウトするには、フレーム内にあるログアウト ボタンをクリックする必要があります。以下のコードは、デバッグ モードで動作します。通常モードでは、スクリプトは例外を発生させずに以下のログアウト メソッドを実行しますが、Logout() JavaScript メソッドは実行されません。
私が間違っていることを指摘したり、セレンを使用してログアウト機能を実現するためのより良い方法や代替方法を提案したりできますか?
次のコードは、デバッグ モードでのみ機能します。
class BankInfo:
...
logout_btn_selector='//a/img[@src="preferred/gif/logoutbtn.gif"]/..'
...
class Automaton():
self.browser = webdriver.Firefox(firefox_profile=self.get_browser_preferences())
self.bank_info = BankInfo
def click_button_by_xpath(self, btn_xpath):
btn = self.browser.find_element_by_xpath(btn_xpath)
btn.click()
def logout(self, logout_btn_selector):
self.browser.switch_to_default_content()
self.browser.switch_to_frame('common_menu1')
self.click_button_by_xpath(logout_btn_selector)
def execute(self):
...
self.logout(self.bank_info.logout_btn_selector)
...
if __name__ == '__main__':
Automaton.execute()
ボタンが存在するページのマークアップ: