2013-05-02 71 views
2

我有一個overlayWindow內的iFrame,無法訪問iFrame及其元素。我在iFrame中有很多菜單,需要測試它。Selenium Webdriver C#:需要幫助訪問iFrame內的元素

的HTML代碼看起來像下面:

<div class="exp overlayContainer" style=""> 
<div class="overlayBackground"></div> 
<div class="overlayWindow" style="position: absolute;"> 
<div class="overlayWindowInner" style="top: 30px; left: -410px;"> 
<div id="closetab"> 
<iframe class="overlayWindowContent" frameborder="0" src="/Templates/frame_loading.html?/my-exp/pers... 

我目前使用下面的代碼硒定位iFrame

IWebElement detailFrame = driver.FindElement(By.XPath("//iframe[@class='overlayWindowContent']")); 
driver.SwitchTo().Frame(detailFrame); 

但得到下面的錯誤消息。

frameElement不能轉換爲RemoteWebElement

讓我知道您的意見

+1

你可以分享'driver'變量的創建方式嗎?只要'driver'是'RemoteWebDriver'的後代,你應該從'FindElement'方法獲得'RemoteWebElement'的子類。 – JimEvans 2013-05-02 20:07:18

+0

我想你正在使用RemoteWebDriver運行?如果你嘗試使用本地驅動程序,那麼它是否可以工作? – 2013-05-31 15:42:36

回答

1

我有同樣的問題,我用driver.switchTo().frame(0);,它爲我工作得很好。