我使用以下内容:Selenium 2.33.0,Python 2.7.3,Firefox 21.0,Debian Wheezy:
使用selenium,我必须点击框架内的注销按钮才能注销网站。以下代码在调试模式下工作。在正常模式下,脚本执行以下注销方法而不引发任何异常,但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()
按钮所在页面的标记:
答案 0 :(得分:0)
我在get_browser_preferences()方法中添加了以下行: firefox_profile.set_preference(“browser.download.useToolkitUI”,True)
我怀疑具有链接“显示所有下载”的下载窗口阻止了selenium webdriver点击下载窗口下方的注销按钮。上述设置阻止了下载窗口的显示。