2017-10-13 7 views
-2

状況が発生している間に、ドライバがiframeに切り替えてその要素とやりとりする必要がある、セレンのwebdriverでWebアプリケーションを自動化しようとしています。私はiframeに切り替えることが可能なすべての手順をしていますが、それでも私はNoSuchFrameExceptionで要素を識別できません

NoSuchFrameException取得しています:名前またはID IMW_PROC_MAINでは見つかりませんでしたフレーム要素を。

以下は、私が試したコードは次のとおりです。

driver.switchTo().frame("IMW_PROC_MAIN"); 
pcw.txt_matterName(driver).sendKeys("TempApplication"); 

は私もインデックスで現在のHTMLページおよびスイッチ上のiframeの合計数を見つけることを試みました。 これは、テキストボックスのエラーとして表示されます。

NoSuchElementExceptionです。

ページソースのスクリーンショットを共有しています。いくつかの制限のため、私はターゲットHTMLテキストを共有していません。 HTML Page source

id=matterNameの要素とやりとりしたい。どのように私はこれを達成することができます。

+0

私は票を落とさないでください。ユーザーは、投票の前に、この質問で何が間違っているか不完全であるかを指摘することができます。 – MKay

答えて

0

あなたはお互いにネスト2つのフレームがある場合は、この試みるこの代替

WebElement FrameID=driver.findElement(By.id("IMW_PROC_MAIN")); 
      driver.switchTo().frame(FrameID); 

を試すことができます:あなたはGB_FRAMEと呼ばれる別のフレームがあるhiglighted与えたとして

WebElement MAINFrameID=driver.findElement(By.id("GB_FRAME")); 
       driver.switchTo().frame(MAINFrameID); 
WebElement FrameID=driver.findElement(By.id("IMW_PROC_MAIN")); 
       driver.switchTo().frame(FrameID); 
// code for your operation 
+0

はい、GB_FRAMEに切り替わりますが、id = IMW_PROC_MAINで要素を見つけることができません。 – MKay

0

を。まず、そのフレームに切り替えてから、IMW_PROC_MAINフレームに切り替える必要があります。 フレームの内側にフレームがあります。最初のコントロールは外側のフレームに切り替える必要がありますし、コントロールは内側のコントロールに切り替わります。

driver.switchTo().frame("GB_FRAME"); 
driver.switchTo().frame("IMW_PROC_MAIN"); 
pcw.txt_matterName(driver).sendKeys("TempApplication"); 
関連する問題