2016-07-15 70 views
1

我有一個頁面需要使用Selenium Webdriver自動執行。Selenium webdriver:無法檢測框架集

我對網頁HTML(通過Firebug的檢查):

<html> 
<head>....</head> 
<frameset onload="DO_Box.setReadyState()" rows="*,0" frameborder="0" framespacing="0" border="0" name="frmMaster"> 
    <frame src="/SomeSource.jsp" marginheight="1" marginwidth="2" scrolling="no" name="frmContent"> 
</frameset> 
</html> 

在這裏,我試圖driver.SwitchTo().DefaultContent()然後driver.SwitchTo().frame()。試圖通過索引,幀名,Xpath,類名,名稱來定位幀,但都是徒勞的。

我的驅動程序無法找到父框架及其中的任何元素。請幫我解決這個問題。

回答

0

有沒有必要切換到frameset。你直接可以如下切換到frame並找到元素: -

driver.SwitchTo().Frame("frmContent"); 
// do your stuff here 
.................. 
driver.SwitchTo().DefaultContent(); 

編輯: - 如果frame需要時間來加載,嘗試用WebDriverWait等到frame如下存在: -

var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10)); 

IWebElement frame = wait.Until(ExpectedConditions.ElementExists(By.Name("frmContent"))); 
driver.SwitchTo().Frame(frame); 
// do your stuff here 
.................. 
driver.SwitchTo().DefaultContent(); 

希望它會幫助你.. :)

+0

我已經嘗試過它..still沒有這樣的框架異常:( –

+0

@AnilVaddepally你有沒有嘗試過一些等待? –

+0

@AnilVaddepally嘗試更新的答案 –

相關問題