2012-03-07 13 views
2

その中のiframeやデータにアクセスすることができません:それは現在でポップアップを開くようセレン:私はiframe対応のこのようなHTMLコードを持って

<iframe class="class1" prio="0" title="Details" type="detail" source="/something/somepage.aspx" style="display:none" frameborder="0"></iframe> 

このフレームは、その中のメニュー、テキスト入力やボタンがありますページ。ポップアップは上記のようにソースページからデータを取得します。

iframeのインデックスを手動で検索し、それにタイトルを表示して正しいフレームにあるのかどうかを確認しましたが、運がなかったのです。

私はiframeでフォームにデータを入力してから、メインページに戻ってきましたが、無知です。助けてください !あなたは(Javaコード)しようとしました

答えて

5

driver.switchTo().frame("iFrameName"); 

driver.findElement(By.id("formOne")).click(); 
driver.findElement(By.id("formOne")).sendKeys("abc"); 
8

SwitchTo()方法は、インデックス、名前やフレーム要素を取りますので、あなたが使用名またはフレーム要素を試すことができます。

//find the frame by class/title/type/source 
IWebElement detailFrame = driver.FindElement(By.XPath("//iframe[@class='class1']")); 
driver.SwitchTo().Frame(detailFrame); 

//alternatively, find the frame first, then use GetAttribute() to get frame name 
IWebElement detailFrame = driver.FindElement(By.XPath("//iframe[@class='class1']")); 
driver.SwitchTo().Frame(detailFrame.GetAttribute("name")); 

//you are now in iframe "Details", then find the elements you want in the frame now 
IWebElement foo = driver.FindElement(By.Id("foo")); 
foo.Click(); 

//switch back to main frame 
driver.SwitchTo().DefaultContent(); 
関連する問題