自动化代码中操作按钮式的文件上传的总结

问题描述 :对于按钮式的文件上传,输入框input都是隐藏在按钮里面,无法直接输入文件路径进行上传操作。
解决思路 :将浏览器的driver转化为JavascriptExecutor类型的driver,通过js的方法修改input框的属性是使之显示出来,然后使用sendKeys方法传入文件路径就可以进行文件上传操作了。
代码演示如下:

1.定位文件上传的输入框input

@FindBy(xpath = "//span[text()='上传图片和文件']/../../input")
    private WebElement uploadImgInput;

2.操作的定位的元素的方法

public void upload(String path) {
        JavascriptExecutor js = (JavascriptExecutor)driver;
        js.executeScript("arguments[0].setAttribute('style', arguments[1])",
                uploadImgInput, "display: block;");
        scrollToElement(uploadImgInput);
        try {
            Thread.sleep(1 * 1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        uploadImgInput.sendKeys(new File(path).getAbsolutePath());
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容