单击框架内的链接可在调试模式下工作,但不能

时间:2013-06-05 12:50:43

标签: python firefox selenium webdriver selenium-webdriver

我使用以下内容: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()

按钮所在页面的标记:                            

1 个答案:

答案 0 :(得分:0)

我在get_browser_preferences()方法中添加了以下行:         firefox_profile.set_preference(“browser.download.useToolkitUI”,True)

我怀疑具有链接“显示所有下载”的下载窗口阻止了selenium webdriver点击下载窗口下方的注销按钮。上述设置阻止了下载窗口的显示。