2011-05-19 72 views
4

我在驗證由框架集和框架組成的頁面中的元素時遇到問題。Selenium問題訪問框架內的元素

我正在使用的代碼:

selenium.selectFrame("relative=up"); 
    selenium.selectFrame("topFrame"); 

但它失敗,錯誤「元素topFrame未找到」。嘗試導航到任何幀時,出現類似的錯誤。

我也試過指定DOM路徑,並使用索引,但似乎沒有工作。

的HTML看起來像這樣:

<frameset framespacing="0" border="0" frameborder="NO" rows="80,*"> 
    <frame scrolling="NO" frameborder="NO" src="header.html" noresize="" name="topFrame"> 
    <frameset framespacing="0" border="0" frameborder="NO" cols="210,*"> 
     <frame scrolling="NO" frameborder="NO" src="menu.html" name="leftFrame"> 
     <frame scrolling="YES" bordercolor="#78B0D5" frameborder="YES" src="content.html"  name="mainFrame"> 
     </frame> 
    </frameset> 
</frameset> 

有什麼建議?

回答

0

使用相對框架導航時,顯然全部取決於您從哪裏開始。爲了確保這一點,我們始終以selenium.selectFrame("relative=top");開始我們的框架導航,這將您置於<FRAMESET>外層,其中selenium.selectFrame("topFrame");將有意義。

1

根據我的經驗,硒在設置幀上下文時是「氣質」的。我覺得定義明確的幀標識符比單單依賴上下文更有用。所以你的情況,我會用:

selenium.selectFrame("relative=top"); 
selenium.selectFrame("css=frame[class=...]"); 
1

在上面提到的

,而不是寫名字= 「topFrame」 嘗試使用ID = 「topFrame」 命令。 selenium使用id來標識對象。