我正在使用以下:Selenium 2.33.0、Python 2.7.3、Firefox 21.0、Debian Wheezy:
使用 selenium,我必须单击框架内的注销按钮才能注销站点。下面的代码在调试模式下工作。在正常模式下,脚本执行以下 logout 方法而不引发任何异常,但 Logout() JavaScript 方法没有被执行。
任何人都可以指出我做错了什么,或者建议一种更好或替代的方法来使用 selenium 完成注销功能。
以下代码仅在调试模式下有效:
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()
按钮所在页面的标记: