上传文件元素不可交互

时间:2019-09-03 17:10:05

标签: selenium selenium-webdriver

Org.openqa.selenium.ElementNotInteractableException: element not interactable

当我尝试上传文件但使用操作“单击”时,可以看到上传文件的窗口

@FindBy(id = "uniform-fileUpload")
WebElement uploadFile;

所以当我尝试这种方法时:

public void uploadFile(){
        uploadFile.click();
}

一切正常,选择文件的窗口打开,因此元素可见。

但是当我尝试这样做时:

        uploadFile.sendKeys("C:\\test.png");

    }

我有能力:

org.openqa.selenium.ElementNotInteractableException: element not interactable

页面:

http://automationpractice.com/index.php?controller=contact

2 个答案:

答案 0 :(得分:3)

您正在尝试将击键发送到div。您需要在input下的div上进行选择,然后向其发送击键。

<div class="uploader" id="uniform-fileUpload">
    <input type="file" name="fileUpload" id="fileUpload" class="form-control">
    ...
</div>

尝试使用ID fileUpload

答案 1 :(得分:1)

更改此

@FindBy(id = "uniform-fileUpload")
WebElement uploadFile;

@FindBy(id = "fileUpload")
WebElement uploadFile;

由于这是input元素,因此需要作为文件输入的目标。