在 Selenium 中的两个字段之间复制和粘贴(Java)

Copy and Paste between two fields in Selenium(Java)

环境:Firefox 并在 Java(在 Eclipse 中)中编码。框架:Selenium WebDriver

此代码的作用是单击日历按钮以 select 字段 1 的值(date/time)。然后它 select 使用(命令- A) 并使用 (Command-C) 复制输入。然后它将值粘贴到字段 2 中。 期望:阅读上面的内容。 实际:将最后一个内容粘贴到我的剪贴板上,而不是字段 1 中的内容。

注意:我可以通过手动复制字段 1 中的值来操纵这些结果,然后当我重新运行我的测试时它会粘贴它。所以它基本上会将我手动复制的最后一件事粘贴到我的剪贴板中。

    driver.findElement(By.xpath(".//*[@id='page-content']/div[1]/ul/li[2]/a")).click();

    driver.findElement(By.className("ui-datepicker-trigger")).click();

    driver.findElement(By.xpath(".//*[@id='ui-datepicker-div']/div[3]/button[1]")).click();

    driver.findElement(By.xpath(".//*[@id='ui-datepicker-div']/div[3]/button[2]")).click();

    driver.findElement(By.xpath(".//*[@id='entryTime']")).sendKeys(Keys.LEFT_CONTROL + "a",(Keys.LEFT_CONTROL + "c"));

    driver.findElement(By.xpath(".//*[@id='expirationTime']")).clear();

    WebElement element2 = driver.findElement(By.xpath(".//*[@id='expirationTime']"));
    Actions action= new Actions(driver);
    action.contextClick(element2).sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.RETURN).build().perform();

您可以按照下面的方式复制。

  Toolkit toolkit = Toolkit.getDefaultToolkit();
  Clipboard clipboard = toolkit.getSystemClipboard();
  clipboard.setContents(new StringSelection(driver.findElement(By.xpath(".//*[@id='entryTime']")).getAttribute("value")), null);