chromeDriver如何实现模拟手动选择本地文件上传(抖音视频上传)

方式

  • 第一种:看前端上传否为input框,如果是则通过选择该元素进行sendKeys(‘filePath’)
  • 第二种:不是input框,只能模拟手动选择文件的过程了
    具体细节看下面介绍

方式一:input方式

以抖音发布视频为例:
在这里插入图片描述
就是通过input框实现,选择元素输入文件路径即可:

// 选择上传的文件 //*[@id="root"]/div/div/div[3]/div/div[1]/div/div[1]/div/label
            WebElement fileInput = driver.findElement(By.xpath("//*[@id=\"root\"]/div/div/div[3]/div/div[1]/div/div[1]/div/label/input"));
            fileInput.sendKeys(filePath);

执行该程序就能实现自动选择本地文件

但是当上传的不是input该如何实现,这就只能模拟了,如微信视频号
在这里插入图片描述

方式二:非input,模拟本地文件选择

Java里有一个Robot类,就是用来实现自动化,模拟认为操作,先简单介绍下:
在Java中,Robot类是java.awt包中的一个类,用于模拟用户操作的输入事件,比如鼠标点击、键盘输入等。通过Robot类,你可以编写程序来控制鼠标和键盘,实现自动化测试、屏幕捕获和用户界面交互等功能。
Robot类的一些核心API包括:

  1. mouseMove(int x, int y):将鼠标移动到指定的屏幕坐标(x, y)处。
  2. mousePress(int buttons):按下指定的鼠标按钮,可以使用InputEvent.BUTTON1_MASK、InputEvent.BUTTON2_MASK和InputEvent.BUTTON3_MASK分别表示鼠标的左键、中键和右键。
  3. mouseRelease(int buttons):释放指定的鼠标按钮。
  4. keyPress(int keycode):按下指定的键盘按键,可以使用KeyEvent类中定义的常量来表示键盘按键。
  5. keyRelease(int keycode):释放指定的键盘按键。
  6. delay(int ms):暂停指定的毫秒数,用于控制动作的执行速度。

这些API可以让你编写程序来模拟用户操作,实现自动化任务。

回到上面的问题,思路是:先选择页面的上传按钮,点击后,用robot粘贴文件路径到文件管理器地址栏,然后回车就能选择你要上传的文件了
如下代码:
第一步,点击上传按钮

WebElement fileInput = driver.findElement(By.xpath("//*[@id=\"container-wrap\"]/div[2]/div/div/div[1]/div[3]/div/div[2]/div[1]/div/div/div/span/div/span/div/div"));
        fileInput.click();

第二步,将文件路径复制

// 设置文件路径
        StringSelection selection = new StringSelection("F:\\XXX.mp4");
        Toolkit.getDefaultToolkit().getSystemClipboard().setContents(selection, null);

第三步,粘贴文件路径,并回车选择该文件

// 使用 Robot 类来模拟按键操作
        try {
            Robot robot = new Robot();

            // 按下 Ctrl + V(粘贴文件路径)
            robot.keyPress(KeyEvent.VK_CONTROL);
            robot.keyPress(KeyEvent.VK_V);
            robot.keyRelease(KeyEvent.VK_V);
            robot.keyRelease(KeyEvent.VK_CONTROL);
            TimeUnit.SECONDS.sleep(2);
            // 按下 Enter 键
            robot.keyPress(KeyEvent.VK_ENTER);
            robot.keyRelease(KeyEvent.VK_ENTER);
        } catch (AWTException e) {
            e.printStackTrace();
        }

通过以上三步就能实现模拟我们收到选择文件上传的过程了

想获取Java自动化发布本地视频到抖音(或类似平台)的源码,可关注公众号:JavaWizardM,回复douyin,即可

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值