51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2632|回复: 8
打印 上一主题 下一主题

selinium python 点击页面弹出一个dialog窗口,如何在弹出窗口选择文件?

[复制链接]
  • TA的每日心情
    慵懒
    2016-9-3 13:53
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    跳转到指定楼层
    1#
    发表于 2016-9-1 16:19:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    点击网页中的“扫描”按钮后,弹出的选择文件的页面,选择相应的文件后直接就做处理了,试了很多种方法无法选择文件(文件位置是可以改变的,可以根据路径来选择),咨询一下:有什么方法能够选择文件


    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2016-11-3 10:48
  • 签到天数: 41 天

    连续签到: 1 天

    [LV.5]测试团长

    2#
    发表于 2016-9-1 17:07:22 | 只看该作者
    文件名里直接输入路径就可以定位到文件!模拟键盘操作,打开后直接输入路径字符串然后发送回车!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2021-12-24 13:41
  • 签到天数: 314 天

    连续签到: 1 天

    [LV.8]测试军长

    3#
    发表于 2016-9-1 21:12:15 | 只看该作者
    你可以试试下面的方法
    1、首先在文件头要有import os
    2、找到扫描元素的ID或者其他属性值,然后上传
    例如
    driver.find_element_by_id("扫描元素的ID").send_keys('文件绝对路径,例如:D:\\XXX文件')

    评分

    参与人数 1测试积点 +10 收起 理由
    lsekfe + 10 积极回复获得测试积点10

    查看全部评分

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2017-11-7 16:44
  • 签到天数: 290 天

    连续签到: 1 天

    [LV.8]测试军长

    4#
    发表于 2016-9-2 09:01:50 | 只看该作者
    这是Windows窗口,单纯的selenium是定位不了的,只能引入其他库,网上有一种方法是引入:win32gui,win32con,win32api
    这是在网上搜的例子,你自个琢磨下,跟你的那个需求挺像的:

    #!/usr/bin/python
    #coding=utf-8
    import win32gui
    import win32con
    import win32api

    from selenium import webdriver
    from selenium.webdriver.common.action_chains import ActionChains
    import time
    driver = webdriver.Firefox()
    driver.get("https://www.baidu.com/")
    time.sleep(3)
    #定位到要右击的元素
    q=driver.find_element_by_xpath(".//*[@id='u1']/a[1]")
    #对定位到的元素执行鼠标右键操作
    ActionChains(driver).context_click(q).perform()
    q.send_keys("K")
    time.sleep(3) #休眠3秒'''

    #获取位置
    a = u'#32770'
    pwin =win32gui.FindWindow(a,None)
    pwin1=win32gui.FindWindowEx(pwin,None,'DUIViewWndClassName',None)
    pwin2=win32gui.FindWindowEx(pwin1,None,'DirectUIHWND',None)
    pwin3=win32gui.FindWindowEx(pwin2,None,'FloatNotifySink',None)
    pwin4=win32gui.FindWindowEx(pwin3,None,'ComboBox',None)
    pwin5=win32gui.FindWindowEx(pwin4,None,'Edit',None)
    win32gui.SendMessage(pwin5, win32con.WM_SETTEXT, None, 'Test')
    time.sleep(1)

    #定位到保存按钮
    b = u"保存(&S)"
    save_button = win32gui.FindWindowEx(pwin, None,'Button',b)

    win32gui.SetForegroundWindow(save_button)
    #按键盘Down键,操作“保存”按钮,激活
    time.sleep(1)
    win32api.keybd_event(40,0,0,0)
    win32api.keybd_event(40,0,win32con.KEYEVENTF_KEYUP,0)
    time.sleep(1)
    #按键盘ENTER键
    win32api.keybd_event(13,0,0,0)
    win32api.keybd_event(13,0,win32con.KEYEVENTF_KEYUP,0)

    评分

    参与人数 1测试积点 +10 收起 理由
    lsekfe + 10 积极回复获得测试积点10

    查看全部评分

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2016-9-3 13:53
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    5#
     楼主| 发表于 2016-9-3 10:19:50 | 只看该作者
    若尘_51 发表于 2016-9-2 09:01
    这是Windows窗口,单纯的selenium是定位不了的,只能引入其他库,网上有一种方法是引入:win32gui,win32co ...

    通过测试这种方法完全可以实现对弹出窗口的各种处理,谢谢
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-23 02:56 , Processed in 0.071306 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表