2016-07-15 4 views
1

私はSelenium Webdriverを使用して自動化する必要があるページがあります。Selenium webdriver:フレームセットを検出できません

ページ(Firebugので検査)のための私のHTML:私はdriver.SwitchTo().DefaultContent()、その後driver.SwitchTo().frame()を試してみましたが、ここで

<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> 

。インデックス、フレーム名、Xpath、クラス名、名前でフレームを検索しようとしましたが、無駄になりました。

私のドライバは親フレームとその中の任意の要素を見つけることができません。これを修正する際に私を助けてください。

答えて

0

framesetに切り替える必要はありません。あなたは直接、以下のようにframeに切り替えて、要素を見つけることができます: -

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

編集: - ロードするframeテイク時間あれば、frameは以下のように存在するようになるまで待たなければWebDriverWaitてみてください: -

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

私はそれを試しましたが、このようなフレームの例外はありません:( –

+0

@AnilVaddepallyあなたは少し待ってみましたか? –

+0

@AnilVaddepally更新された回答で試してください –

関連する問題