【问题标题】:How to attach a file on Windows PC using Selenium WebDriver in Java如何使用 Java 中的 Selenium WebDriver 在 Windows PC 上附加文件
【发布时间】:2020-10-14 16:02:02
【问题描述】:

手动步骤:

  1. 在显示的应用程序 Windows 对话框上单击浏览。

  2. 在 windows 对话框的文件名字段中输入文件路径。

  3. 点击打开按钮

  4. 它附加文件。

使用机器人类的代码:

@Test
public void test(){

    WebElement element = driver.findElement(By.className("attach"));
    
    element.click();
    
    waitSeconds(9000);
    

     Robot robot = new Robot();
    
    robot.keyPress(KeyEvent.VK_SHIFT);
    
    robot.keyPress(KeyEvent.VK_S);
    
    robot.keyRelease(KeyEvent.VK_SHIFT);
    
    robot.keyPress(KeyEvent.VK_1);
    
    robot.keyPress(KeyEvent.VK_PERIOD);
    
    robot.keyPress(KeyEvent.VK_T);
    
    robot.keyPress(KeyEvent.VK_X);
    
    robot.keyPress(KeyEvent.VK_T);
    
    robot.keyPress(KeyEvent.VK_ENTER);}  

当我运行测试时,除了最后一行之外,它工作得很好。 最后一行按回车键就好了。之后,对话框再次打开。所以文件永远不会附加。 Windows 对话框有两个按钮:打开和取消。在文件名字段中输入文件路径后,它应该按一次打开按钮。我该怎么做?

【问题讨论】:

  • 尝试模拟按 Alt+O 而不是 Enter。或者使用element.sendKeys("C:\...\D1.txt"); 插入文件路径,避免上传对话框。见guru99.com/upload-download-file-selenium-webdriver.html
  • UI 字段不是文本字段。所以不能直接在 UI 中插入文件路径。我会试试 Alt+O
  • 检查我的答案。我猜比使用 Robot 要好。

标签: selenium


【解决方案1】:

使用org.openqa.selenium.JavascriptExecutor设置元素属性'value':

import org.openqa.selenium.JavascriptExecutor

//...

JavascriptExecutor javascriptExecutor = (JavascriptExecutor) driver;
String script = "document.getElementsByClassName('attach')[0].setAttribute('value', 'C:\...\D1.txt');";
javascriptExecutor.executeScript(script);

【讨论】:

    猜你喜欢
    • 2013-05-29
    • 1970-01-01
    • 1970-01-01
    • 2012-06-30
    • 2016-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多