2012-05-14 120 views
0

Selenium 2 webdriver for C#無法找到框架「nav_bottom」 ,但它可以識別框架「頂部」。我在Firefox 12中測試。 標記如下所示..頂部框架集不具有ID或名稱屬性frame not recognized

<frameset> 
    <frame id ="top"> 
    <frameset id="bottom"> 
     <frame id="nav_bottom"> 

我解決了這個問題,通過排除哪些幀在給定時間可見。感謝您的幫助。

ReadOnlyCollection<IWebElement> frames1 = driver.FindElements(By.TagName("frame")); 

    Console.Write("total frames " + frames1.Count); 

    foreach (IWebElement frame in frames1) 
     { 
      Console.WriteLine("focus is on main frame " + frame.GetAttribute("id")); 
     } 
+0

您目前如何嘗試找到框架?發佈你的代碼? – Nashibukasan

+0

//集中回主框 driver.SwitchTo()。DefaultContent(); wait.Until(x => x.FindElement(By.TagName(「frame」)。Name(「ek_nav_bottom」))); driver.SwitchTo()。Frame(「ek_nav_bottom」); – RashmiPires

+0

這似乎是一種安全的方式來做事情(在你的編輯中)。我想你可能一直試圖通過預先確定的ID訪問一個。很高興聽到它是固定的。 – Nashibukasan

回答

0

您可能需要驅動程序先將焦點切換到幀。嘗試擺弄:

driver.SwitchTo().Frame(the frame IWebElement); 

嘗試每個幀作爲IWebElement,希望這有助於。

+0

我能夠通過排除可見的幀來解決問題。有幾個框架和內聯框架。 – RashmiPires