我正在尝试在单击下拉选项后出现的叠加文本字段中输入文本。但是代码没有集中到覆盖窗口,我无法在字段中输入任何文本。 下面是下拉选项的HTML代码,它将打开新的弹出窗口:
<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代码的覆盖图(参见图像):
任何人都可以建议我如何解决这个问题。
我的代码:
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 :(得分: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");