2017-05-12 52 views
0

ドロップダウンオプションをクリックした後に表示されるオーバーレイのテキストフィールドにテキストを入力しようとしています。しかし、コードはオーバーレイウィンドウにフォーカスしていないので、フィールドにテキストを入力することはできません。以下 が新しいポップアップが開きますオプションをドロップダウンのHTMLコードです:selenium webdriverを使用してオーバーレイにテキストを入力する方法

<a href="#" objrid onclick="setTimeout(function() 
{YAHOO.action.flyers.tile87.hide();}, 0);openDialog('tile87_dialog', 
'tileId=null&lineId=0&columnName=ItemSheet&S_moduleContextId=cat', 'Ok', 
'Cancel', '', event);stopEventPropagation(event);; return false;" 
class="yuimenuitemlabel"> 

これをクリックした後、それは、HTMLコードの下にあるオーバーレイを開きます(画像を参照してください):

HTML for ovarlay

誰も私にこの問題を解決する方法を提案してもらえますか?

私のコード:

driver.findElement(By.linkText("New")).click(); 

driver.switchTo().activeElement(); 
By.className("yui-panel-container yui-dialog shadow focused"); 
By.className("yui-module yui-overlay yui-panel keyboardFocus"); 
By.className("bd"); 
WebElement enterText=driver.findElement(By.name("firstname")); 
enterText.sendKeys("Hello"); 

注:私はこれを手動で確認し、フォーカスは自動的にオーバーレイのテキストフィールドに設定されます。しかし、コードで同じことをすると、テキストフィールドに焦点を当てるのではないのですか?

これを行う方法に関するヒントは参考になります。

よろしく、

Krutika

+0

それは、このオーバーレイポップアップ現在フレーム/ – kushal

+0

の内側にあなたがしようとしているコードを追加することはできますか? – Grasshopper

+0

はい、私は自分の投稿に追加しました。 –

答えて

0

あなたが質問をするときは、完全なHTMLコードを共有する必要があります。それ以外の場合は、あなたが困難になるのを助けるために。
私はこれをやろうとしますが、私はこれに関する完全な情報を持っていません。
例として、あなたのコードは次のように見ている:

//1. Initialization of driver 
driver = new ChromeDriver(); 
//2. Get needed URL 
driver.get("http://someUrl"); 
//3. Click this element will open alert 
driver.findElement(By.className("yuimenuitemlabel")).click(); 
//4. Waiting for full rendering alert 
try { 
    Thread.sleep(3000); 
} catch (InterruptedException e) { 
    e.printStackTrace(); 
} 
//5. Enter needed text 
driver.switchTo().alert().sendKeys("the text you needed"); 
+0

はい、アラートを使用しようとしました。しかし、私は 'アラートが見つかりません'というエラーメッセージを受け取りました。 –

関連する問題