python+selenium自动化之文件上传、弹框处理
1.当可以定位到input标签的时候
2.当定位不到input标签的时候
可以使用selenium之外的方法,目前不知道是否是最优解,但是这种可以实现,实现方法代码如下:
from pykeyboard import PyKeyboard
def upload_picture(self, file):
# self.click(self.salon_banner_loc)
k = PyKeyboard()
m = PyMouse()
filepath = '/'
k.press_keys(['Command', 'Shift', 'G'])
x_dim, y_dim = m.screen_size()
m.click(x_dim // 2, y_dim // 2, 1)
# 复制文件路径开头的斜杠/
pyperclip.copy(filepath)
# 粘贴斜杠/
k.press_keys(['Command', 'V'])
# 输入文件全路径进去
k.type_string(file)
k.press_key('Return')
time.sleep(2)
k.press_key('Return')
time.sleep(2)
k.press_key('Return')
3.弹框处理机制
将小方块拖到另一个小方块上,这时候弹出一个弹窗,点击弹窗的【确定】按钮,弹窗消失
4.toast提示
web页面中的toast提示,一般是存在于登录错误、操作非法的时候,一个停留在页面1、2s的小提示,所以很难定位到这种元素,如何让toast在页面中停留的时间长一点呢?以chrome浏览器为例
可以打开web浏览器中的控制台,在控制台下方,有一个setting,点击setting
当toast提示出来的时候,点击Disable JavaScript按钮,就可以使toast提示一直停留在当前页面(注意:一定是先点击等toast提示出来后再选择Disable JavaScript)

我这里遇到一个坑:红框中的id名称后面的数字是一直在变的,每点击一次加1,toast提示元素id一直变化中,因此在这里使用id去定位,会导致元素找不到,因此实际场景中,一定要注意这个问题⚠️

浙公网安备 33010602011771号