51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4342|回复: 7
打印 上一主题 下一主题

python+Selenium

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2016-3-1 18:26:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我准备写一个程序来自动注册账号,但是在这个填入密码的时候,无法用
browser.find_element_by_id('_ocx_password1').send_keys('abc123'),在如下【图1】密码框中写入密码

用firefox自带的查看器,看到这个输入框的源码如下【图2】,奇怪的是,它是embed标签,而不是input标签。通过他的id无法sendkey,不过也不会报错。

我尝试过用js赋值,还是不行。
还尝试过用python模拟鼠标和键盘的操作,如【图3】,依然不行,这种方法在其他input标签的输入框内是可以的。

此外还尝试过,写按键精灵脚本输入,按键精灵无法记录这个embed标签内的操作,也无法往里面写入。

是不是这个embed标签,有什么密码控件保护,无法接受输入啊。
我已经快崩溃了,哪个大神救救我啊

本帖子中包含更多资源

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

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

使用道具 举报

  • TA的每日心情
    慵懒
    2017-9-21 15:25
  • 签到天数: 50 天

    连续签到: 1 天

    [LV.5]测试团长

    2#
    发表于 2016-3-2 10:25:45 | 只看该作者
    lz是不是可以找一下,利用下js脚本来定位执行,selenium中好像有个javascriptExecu的方法可以引用js脚本,通过脚本进行DOM节点操作
    具体资料查一下吧,我只提供一个思路

    评分

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

    查看全部评分

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2018-8-27 15:56
  • 签到天数: 322 天

    连续签到: 1 天

    [LV.8]测试军长

    3#
    发表于 2016-3-2 14:14:59 | 只看该作者
    如果是用了密码控件,一般有保护。。。本人尝试过无数方法,基本无解。。。。
    所以当时只能采用半自动的方式,到了这个地方,暂停人工介入,再继续。。。看看其他人有没有什么办法吧。。。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2015-6-16 10:28
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    4#
    发表于 2016-3-2 19:56:53 | 只看该作者
    按照键盘的实现方式,一个字符一个字符来送ASCII码。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
     楼主| 发表于 2016-3-3 10:37:41 | 只看该作者
    chenyansong 发表于 2016-3-2 19:56
    按照键盘的实现方式,一个字符一个字符来送ASCII码。

    键盘操作也不行,我试过python的win32api,完全没反应。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
     楼主| 发表于 2016-3-3 10:39:43 | 只看该作者
    prettyfool 发表于 2016-3-2 10:25
    lz是不是可以找一下,利用下js脚本来定位执行,selenium中好像有个javascriptExecu的方法可以引用js脚本, ...

    js是不行的。还是感谢
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
     楼主| 发表于 2016-3-3 10:43:01 | 只看该作者
    seagull1985 发表于 2016-3-2 14:14
    如果是用了密码控件,一般有保护。。。本人尝试过无数方法,基本无解。。。。
    所以当时只能采用半自动的方 ...

    这尼玛,win32api模拟鼠标键盘应该算是很底层的了。也不行,密码控件确实还是屌啊
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
     楼主| 发表于 2016-3-3 11:10:14 | 只看该作者
    seagull1985 发表于 2016-3-2 14:14
    如果是用了密码控件,一般有保护。。。本人尝试过无数方法,基本无解。。。。
    所以当时只能采用半自动的方 ...

    刚在网上看,貌似找到解法了,keybd_event这种键盘模拟确实是不行的。说是,需要使用驱动级的键盘模拟输入技术才能输进去。附原帖地址:http://bbs.csdn.net/topics/391815188
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2018-8-27 15:56
  • 签到天数: 322 天

    连续签到: 1 天

    [LV.8]测试军长

    9#
    发表于 2016-3-3 11:19:18 | 只看该作者
    165372300 发表于 2016-3-3 10:43
    这尼玛,win32api模拟鼠标键盘应该算是很底层的了。也不行,密码控件确实还是屌啊

    一个自动化工具就把密码控件给破了,那他们都不用干了。。。。一个控件卖那么多钱。。。所以基本无解。。不用白费心思了,非要全自动,除非把密码控件去掉
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2015-6-16 10:28
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    10#
    发表于 2016-3-5 13:14:54 | 只看该作者
    能手工输入,直接用windows的API应该可以,一个字符的传ACSII码,用python调用CMD。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
     楼主| 发表于 2016-3-10 23:06:53 | 只看该作者
    seagull1985 发表于 2016-3-3 11:19
    一个自动化工具就把密码控件给破了,那他们都不用干了。。。。一个控件卖那么多钱。。。所以基本无解 ...

    哈哈,bbs.csdn.net/topics/391815188这个帖子的方法,用驱动级键盘模拟确实可以解决。我用的帖子里面的DD驱动,暴简单,一下就解决了。你可以试试看。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
     楼主| 发表于 2016-3-10 23:07:48 | 只看该作者
    chenyansong 发表于 2016-3-5 13:14
    能手工输入,直接用windows的API应该可以,一个字符的传ACSII码,用python调用CMD。

    winapi没用的,密码空间都是屏蔽了WINAPI的,http://bbs.csdn.net/topics/391815188,这个帖子讲的很清楚,这种情况需要用驱动级的键盘模拟。
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-9-22 00:54 , Processed in 0.083868 second(s), 25 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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