2016-07-14 18 views
0

私はフォーム内のテキストフィールドにキーを送信しようとしています。しかし、このフォームはsrc属性のリンクに置かれます。属性srcはそのリンクがフレームタグ内にあることを示します。ここで iframeのsrc属性でURLにアクセスするにはどうすればよいですか?

Form in fancybox

私はすでにが、このコードを使用

それは動作しませんでしたfancyboxでフォームのイメージHTMLコードここ

<div class="fancybox-overlay fancybox-overlay-fixed" style="width: auto; height: auto; display: block;"><div class="fancybox-wrap fancybox-desktop fancybox-type-iframe fancybox-opened" tabindex="-1" style="width: 647px; height: auto; position: absolute; top: 20px; left: 351px; opacity: 1; overflow: visible;"><div class="fancybox-skin" style="padding: 15px; width: auto; height: auto;"><div class="fancybox-outer"><div class="fancybox-inner" style="overflow: auto; width: 617px; height: 277px;"><iframe id="fancybox-frame1468468198811" name="fancybox-frame1468468198811" class="fancybox-iframe" frameborder="0" vspace="0" hspace="0" webkitallowfullscreen="" mozallowfullscreen="" allowfullscreen="" scrolling="auto" src="addproductgroup.aspx?q=hS9DFK23Nh8Xk29sPZN9j%2bqXSaPgqztzEsozxWSIrSbx9JdDslfYJg%3d%3d"></iframe></div><title="Close" class="fancybox-item fancybox-close" href="javascript:;"></a></div></div></div> 

されます

WebElement tambahGroup = driver.findElement(By.id("aTambah")); 
tambahGroup.click(); 
WebElement iframe; 
iframe = driver.findElement(By.id("fancybox-frame1468468198811")); 
driver.switchTo().frame(iframe); 
String src = ((JavascriptExecutor)driver).executeScript("return arguments[0].attributes['src'].value;", iframe).toString(); 
driver.get("http://member.indotrading.com/product/"+src); 
WebElement namaGroup = driver.findElement(By.id("txtProdukGroup")); 
namaGroup.sendKeys("Bunga Mawar"); 
WebElement namaGroupEng = driver.findElement(By.id("txtProductGroupEnglish")); 
namaGroupEng.sendKeys("Rose Flower"); 
Select indukGroup = new Select(driver.findElement(By.id("ddlParent"))); 
indukGroup.selectByVisibleText("BUN6A"); 
WebElement btnSave = driver.findElement(By.id("btnAdd")); 
btnSave.click();// Switching to Parent window i.e Main 
Window.driver.switchTo().defaultContent(); 

このエラーメッセージが見つかりました

要素が見つかりません:スレッド "メイン" org.openqa.selenium.NoSuchElementExceptionで

例外 { "方法": "ID"、 "選択": "fancybox-frame1468468198811"}コマンド 期間またはタイムアウト:このエラーのドキュメントについては837ミリ秒、 はご覧ください。http://seleniumhq.org/exceptions/no_such_element.html

このリンクはiframeタグとfancyboxであるので、私は、リンク内のテキストフィールドに達する可能性がどのように。あなたの助けを大変感謝します。

+0

は常に固定されているか、番号が変更されていますか? – Paras

+0

番号は常に変化しています。どのようにそれを処理するには? –

答えて

0

識別できない要素の主な理由はidではありませんconstant変更し続けます。このようなシナリオを処理するには、regexの助けを借りてください。

xpathsを使用して要素を識別できます。

driver.findElement(By.xpath("//iframe[starts-with(@id, 'fancybox-frame')]")); 
+0

okありがとう私はこれを試してみる、ありがとう:) –

関連する問題