2

光标如何在页面加载时专注于特定的输入框?

按钮是“添加新约会”,脚本是:

<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>
4

1 回答 1

1
  1. 点击按钮,您可以简单地执行以下操作:driver.findElement(By.xpath("//input[@value='add new appointment']")).click();

  2. 通过说“这会打开一个弹出窗口”,您是指像这样或这样实际新窗口、新选项卡或对话框吗?

我认为它打开了dialog,在这种情况下,它通常只是页面上的另一个元素。在这种情况下,这应该有效:

driver.findElement(By.xpath("//*[@id='barge:bargeId:txtInput']")).sendKeys("suxs");

更新:
由于它是一个新窗口,因此可以切换到此处描述的新窗口:

driver.switchTo().window("windowName");

open_win()此外,检查javascript 函数的代码也会很有帮助。

于 2013-01-04T15:40:06.190 回答