2014-07-17 23 views
1

在Python中使用Selenium時,我試圖自動化我的GUI,該GUI在左側窗格上有一個菜單,在右側窗格上有一個內容區域。下面是正在使用的版本: 硒:2.42.1 的Python:2.7.8 火狐:28在Selenium中加載框架時Firefox無響應

當點擊左側菜單,頁面內容區域加載。菜單是像Windows資源管理器一樣的多級可擴展的。你點擊1級和2級菜單出現。同樣,當你點擊2級菜單時,你會看到3級菜單。

我可以去菜單中的第3級。在這個級別上,有一個屏幕名稱。當我點擊它時,預計屏幕將在頁面右側的內容區域中打開。但我在這裏面臨一個問題。內容區域中的頁面無法加載,並且Firefox無響應。我必須手動殺死Firefox。螢火顯示下方的關聯區域的格式時,我手動打開屏幕(不使用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內容區域,但是當我在硒運行它沒有加載框架。

下面是我的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頁面上對它們進行了重新驗證,但它們似乎是兼容的。在日誌文件中找不到「插入後」。

回答

0

原來是firefox的不兼容版本。最後我使用的是以下版本,並且工作正常: Firefox 24 Selenium 2.40 Python 2.7.8。