Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.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 Selenium WebDriver和Robot:使其在自动上传文件时集中在正确的浏览器上_Java_Selenium_Automated Tests_Awtrobot - Fatal编程技术网

Java Selenium WebDriver和Robot:使其在自动上传文件时集中在正确的浏览器上

Java Selenium WebDriver和Robot:使其在自动上传文件时集中在正确的浏览器上,java,selenium,automated-tests,awtrobot,Java,Selenium,Automated Tests,Awtrobot,我试图在我的网站上引发一个错误,您试图从本机上载窗口向对象添加许多图像(sendKeys在这种情况下不起作用;它不会引发错误)。五次中有一次,它会做预期的事情——添加太多图片。其他时候,它会进行点击,但会在错误的浏览器中进行,甚至只是在Eclipse中 这是我的。此代码段将让您登录并转到添加项 public void addItemMoreThan10Images() throws AWTException{ Robot robot = new Robot(); WebDri

我试图在我的网站上引发一个错误,您试图从本机上载窗口向对象添加许多图像(sendKeys在这种情况下不起作用;它不会引发错误)。五次中有一次,它会做预期的事情——添加太多图片。其他时候,它会进行点击,但会在错误的浏览器中进行,甚至只是在Eclipse中

这是我的。此代码段将让您登录并转到添加项

  public void addItemMoreThan10Images() throws AWTException{
    Robot robot = new Robot();
    WebDriverWait wait = new WebDriverWait(driver, 20);
    driver.manage().window().maximize();
    driver.get("https://example.com/login");
    loginClass login = new loginClass(driver);
    driver.switchTo().frame(0);
    login.VerifyLoginUser();
    login.typeUserName("example");
    login.typePassword("example");
    login.clickOnLoginButton();
    wait.until(ExpectedConditions.elementToBeClickable(login.profileInfo));
    wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//span[contains(text(),'New Item')]")));
    driver.findElement(By.xpath("//span[contains(text(),'New Item')]")).click();
    wait.until(ExpectedConditions.elementToBeClickable(By.xpath("/html/body/div[1]/div/div/item-wizard/div/div/form/div[3]/input")));

    driver.findElement(By.xpath("//h4[@class='PhotoTxt margClear']")).click();
然后,这就是有趣的事情发生的地方

try {
            Thread.sleep(500);
} catch (InterruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    robot.keyPress(KeyEvent.VK_SHIFT);
    try {
        Thread.sleep(500);
    } catch (InterruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    robot.keyPress(KeyEvent.VK_DOWN);
    try {
        Thread.sleep(500);
    } catch (InterruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    robot.keyPress(KeyEvent.VK_DOWN);
    try {
        Thread.sleep(500);
    } catch (InterruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    robot.keyPress(KeyEvent.VK_DOWN);
    try {
        Thread.sleep(500);
    } catch (InterruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    robot.keyPress(KeyEvent.VK_DOWN);
    try {
        Thread.sleep(500);
    } catch (InterruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    robot.keyPress(KeyEvent.VK_DOWN);
    try {
        Thread.sleep(500);
    } catch (InterruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    robot.keyRelease(KeyEvent.VK_SHIFT);
    try {
        Thread.sleep(500);
    } catch (InterruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    robot.keyPress(KeyEvent.VK_TAB);

    try {
        Thread.sleep(500);
    } catch (InterruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    robot.keyPress(KeyEvent.VK_ENTER);

@Test(priority=1) 
public void testAddItemMoreThan10Images()
{
    try {
        addItemMoreThan10Images();
    } catch (AWTException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}
因此,这段代码会点击,但在大多数情况下不会在正确的位置点击。有没有人对如何实现这一目标有什么建议


提前谢谢

这段代码非常“朋克”:-)乍看之下,缺少一些keyRelease事件。谢谢你的提示!我会再试试看