如何使用 Selenium Webdriver 中的“上传图像按钮”上传文件/照片

Niy*_*ati 0 java selenium selenium-webdriver

  WebElement UploadImg = driver.findElement(By.xpath("//*[@id='file_upload_button']"));
  UploadImg.click();
  WebElement frame =driver.switchTo().activeElement();
  frame.sendKeys("d:\5.jpg");
Run Code Online (Sandbox Code Playgroud)

此代码仅打开系统窗口,但未选择任何照片/文件

小智 5

运行此代码:

JavascriptExecutor js = (JavascriptExecutor) driver; 
js.executeScript("arguments[0].setAttribute('style', arguments[1])",` driver.findElement(By.xpath("//input[@type='file']")), "0");
js.executeScript("arguments[0].setAttribute('class', arguments[1])", driver.findElement(By.xpath("//input[@type='file']/../../div[2]")), "a");
driver.findElement(By.xpath("//input[@type='file']")).sendKeys("Your Path to the file your system");
Run Code Online (Sandbox Code Playgroud)

说明:每个浏览按钮<input>在 DOM 中都有一个处于隐藏状态的标签。通过使用以下代码行,我们只需更改包含该<input>标签的标签的类和样式属性,使其可见并sendKeys()可以对其执行命令。之后,当您sendKeys使用要上传的图像/文件的绝对路径进行操作时。