如何在页面加载时将光标对焦于特定的输入框?
按钮为“添加新约会”,脚本为:
<input type="button" onclick="open_win()" value="add new appointment"/>
WebElement ek = driver.findElement(By.xpath("//input[@value='add new appointment']"));
jse.executeScript("arguments[0].click();", ek);
这将打开一个弹出窗口。现在我需要关注窗口 Ajax用于从弹出窗口中检索信息 我尝试了各个方面,专注于新的弹出窗口。输入的txt字段是隐藏的,我尝试过的代码是:
jse.executeScript("window.focus();");
driver.switchTo().defaultContent();
driver.switchTo().activeElement().findElement(By.xpath("//*[@id='barge:bargeId:txtInput']"));
driver.switchTo().alert();
我想用以下代码专注于文本字段:
jse.executeScript("document.getElementById('barge:bargeId:txtInput')[0].setAttribute('type', 'text');");
driver.findElement(By.xpath("//*[@id='barge:bargeId:txtInput']")).sendKeys("suxs");
这也没有奏效
即使jse.executeScript("document.title")
也没有奏效
文本字段的代码
<span id="barge:bargeId:input">
<input id="barge:bargeId:txtInput" class="ui-inputfield ui-inputtext ui-widget ui-state-default ui-corner-all inputbox doubleInputbox ui-state-hover" type="text" tabindex="" maxlength="17" accesskey="" name="barge:bargeId:txtInput" role="textbox" aria-disabled="false" aria-readonly="false" aria-multiline="false"/>
</span>
答案 0 :(得分:1)
点击按钮即可轻松完成此操作:driver.findElement(By.xpath("//input[@value='add new appointment']")).click();
我认为它会打开dialog
,在这种情况下,它通常只是页面上的另一个元素。在这种情况下,这应该有效:
driver.findElement(By.xpath("//*[@id='barge:bargeId:txtInput']")).sendKeys("suxs");
<强>更新强>
由于这是一个新窗口,因此可以切换到新窗口described here:
driver.switchTo().window("windowName");
另外,检查open_win()
javascript函数的代码会很有帮助。