Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何按';输入';不以WebElement为目标_Java_Selenium_Selenium Webdriver_Webdriver - Fatal编程技术网

Java 如何按';输入';不以WebElement为目标

Java 如何按';输入';不以WebElement为目标,java,selenium,selenium-webdriver,webdriver,Java,Selenium,Selenium Webdriver,Webdriver,我使用WebDriver进行测试,然后出现一个弹出窗口,没有固定属性(自动生成) 所以,最简单的方法(我认为)是按键盘上的“回车”键。 但我找不到说“只需单击浏览器,而不是浏览器的某个元素”的方法 WebDriver可能会吗?如何实现它?使用操作实用程序,我们可以实现同样的效果: Actions builder = new Actions(driver); builder.keyDown(Keys.RETURN).keyUp(Keys.RETURN).build().perform(); 使用

我使用WebDriver进行测试,然后出现一个弹出窗口,没有固定属性(自动生成)

所以,最简单的方法(我认为)是按键盘上的“回车”键。 但我找不到说“只需单击浏览器,而不是浏览器的某个元素”的方法


WebDriver可能会吗?如何实现它?

使用操作实用程序,我们可以实现同样的效果:

Actions builder = new Actions(driver);
builder.keyDown(Keys.RETURN).keyUp(Keys.RETURN).build().perform();

使用Actions utility,我们可以实现同样的效果:

Actions builder = new Actions(driver);
builder.keyDown(Keys.RETURN).keyUp(Keys.RETURN).build().perform();

你可以这样做

driver.findElement(By.tagName("body")).sendKeys(Keys.ENTER);

你可以这样做

driver.findElement(By.tagName("body")).sendKeys(Keys.ENTER);

另一种方法是使用java.awt.Robot模拟键盘的交互,而不是WebElement的处理

[WebDriver code]

try {
    Robot robot = new Robot();
    robot.keyPress(KeyEvent.VK_ENTER);
    robot.keyRelease(KeyEvent.VK_ENTER);
    robot.delay(200);
}
  Robot robot = new Robot();
  robot.keyPress(KeyEvent.VK_ENTER); //press enter key
  robot.keyRelease(KeyEvent.VK_ENTER); //release enter key

[WebDriver code]

另一种方法是使用java.awt.Robot模拟键盘的交互,而不是WebElement的处理

try {
    Robot robot = new Robot();
    robot.keyPress(KeyEvent.VK_ENTER);
    robot.keyRelease(KeyEvent.VK_ENTER);
    robot.delay(200);
}
  Robot robot = new Robot();
  robot.keyPress(KeyEvent.VK_ENTER); //press enter key
  robot.keyRelease(KeyEvent.VK_ENTER); //release enter key
[WebDriver code]

try {
    Robot robot = new Robot();
    robot.keyPress(KeyEvent.VK_ENTER);
    robot.keyRelease(KeyEvent.VK_ENTER);
    robot.delay(200);
}
  Robot robot = new Robot();
  robot.keyPress(KeyEvent.VK_ENTER); //press enter key
  robot.keyRelease(KeyEvent.VK_ENTER); //release enter key
[WebDriver code]

try {
    Robot robot = new Robot();
    robot.keyPress(KeyEvent.VK_ENTER);
    robot.keyRelease(KeyEvent.VK_ENTER);
    robot.delay(200);
}
  Robot robot = new Robot();
  robot.keyPress(KeyEvent.VK_ENTER); //press enter key
  robot.keyRelease(KeyEvent.VK_ENTER); //release enter key
按下enter键时,还应指定释放命令


按下enter键时,您还应指定释放命令。

非常感谢!它真的帮助了我!对于这两种情况,应用程序在执行此命令后崩溃。所以我用“try{}catch(){}”来阻止崩溃。非常感谢!它真的帮助了我!对于这两种情况,应用程序在执行此命令后崩溃。因此,我使用了一个“try{}catch(){}”来防止崩溃。逻辑看起来不错,但如果不崩溃,我无法执行它。弹出窗口不会消失。。也谢谢你!逻辑看起来不错,但我不能执行它而不崩溃。弹出窗口不会消失。。也谢谢你!