【问题标题】:Firefox unresponsive while loading frame in Selenium在 Selenium 中加载框架时 Firefox 无响应
【发布时间】:2014-07-17 05:11:30
【问题描述】:

将 Selenium 与 python 结合使用,我正在尝试自动化我的 GUI,该 GUI 在左窗格中有一个菜单,在右窗格中有一个内容区域。以下是正在使用的版本: 硒:2.42.1 蟒蛇:2.7.8 火狐:28

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

我可以在菜单中达到 3 级。在这一层,有一个网名。当我单击它时,预计屏幕将在页面右侧的内容区域中打开。但我在这里面临一个问题。内容区域中的页面无法加载,并且 Firefox 变得无响应。然后我必须手动杀死firefox。当我手动打开屏幕(不使用 Selenium)时,Firebug 显示以下上下文区域的格式:

[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 页面上重新验证了它们,但它们似乎是兼容的。我在日志文件中没有看到“找到插入后”。

【问题讨论】:

    标签: python firefox selenium frame


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2014-04-15
      • 2011-07-23
      • 1970-01-01
      • 1970-01-01
      • 2018-01-23
      • 2015-12-26
      • 1970-01-01
      • 1970-01-01
      • 2013-09-30
      相关资源
      最近更新 更多