当用selenium时遇到上传文件的弹窗
平时都用selenium webdriver来做web自动化,偶尔会遇到需要上传文件啊图片之类的。
对于这种情况,弹出来的不是alert,而是系统控件,于是往往会直接想到识别控件来操作。识别控件对windows还比较容易支持,虽然要做稍微多点的工作,但是对于非windows平台以及使用headless browser的时候,这个就不起作用了,而且这种方式还不太稳定。
另外还可以查看请求列表,传递各种参数来模拟上传文件的请求。
不过这两种方式都是费力不讨好的。还有另一种方式最简单:如果上传按钮控件的html里能看到input(type="file"),直接对这个input做send_keys即可,就不需要等待弹窗出现再处理了。对于不少这样的控件都能操作,当然也有操作不了的。如果遇到这样的,不妨试一试,能节约不少时间。
比如这样的例子:
file_upload_input = driver.find_element("xpath", "//div[@id='fileUploader']//input")
file_upload_input.send_keys("/Users/Documents/new.pdf")
下一篇:
PMP知识点(一)项目相关的定义