Firefox在Selenium中加载框架时没有响应

时间:2014-07-17 05:11:31

标签: python firefox selenium frame

使用Selenium和python,我试图自动化我的GUI,左窗格上有一个菜单,右窗格上有一个内容区域。以下是使用的版本: 硒:2.42.1 Python:2.7.8 Firefox:28

在左侧单击菜单时,会在内容区域中加载页面。菜单是多级可扩展的,如Windows资源管理器。单击1级,出现2级菜单。同样,当您单击2级菜单时,您会看到3级菜单。

我可以直到菜单中的第3级。在此级别,有一个屏幕名称。当我点击它时,预计屏幕将在页面右侧的内容区域中打开。但我在这里遇到了一个问题。内容区域中的页面未加载,Firefox无法响应。我必须手动杀死firefox。当我手动打开屏幕时,Firebug显示上下文区域的格式(不使用Selenium):     

[div id="contentArea"]
    [iframe id="main"]
        [html class="dj_gecko dj_contentbox"]
             dbody class="mainBody appworks tundra"]
                  [div id="mainBC"]
                       [div id="contentBC]
                            [div id="contentBottom"]
                                  [span class="dijit dijitReset dijitLeft dijitInline dijitButton"]
                                       [span class="dijitReset dijitRight dijitInline"]
                                             [span class="dijitReset dijitInline dijitButtonNode"]
                                                  [button id="insertButton" class="dijitReset dijitStretch dijitButtonContents"] 
                                                        [span class="dijitReset]
                                                             [span id="insertButton_label]

我想在内容区域中单击此insertButton,但是当我在Selenium中运行它时,框架未加载。

下面是我的python代码:

driver.find_element_by_xpath("//*[text()=\"Diameter\"]").click() # These are menus - level 1
driver.find_elements_by_xpath("//*[text()=\"Configuration\"]").click() # level 2
driver.find_element_by_xpath("//*[text()=\"Application Ids\"]").click() # level 3

try:                        
    print "before switch"
    self.driver.switch_to_frame(0)  # There is only one frame in Contet area
    print "after switch"
    driver.find_element_by_css_selector("#insertButton").click()
    print "after finding Insert"
    #WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, "//*[text()=\"Insert\"]"))).click()
    #driver.find_element_by_xpath("//*[text()=\"Insert\"]").click()
except Exception as e:
    print e  

没有异常被捕获但firefox停止响应。我也没有看到firefox中的“无响应脚本”警告。我怀疑这是Firefox,Python或Selenium的不兼容版本。我在Selenium页面上重新验证了它们,但它们似乎兼容。在找到插入符号后,我没有看到"在日志文件中。

1 个答案:

答案 0 :(得分:0)

原来它是firefox的不兼容版本。最后我使用以下版本,它工作正常: Firefox 24 硒2.40 Python 2.7.8。