• 需求已经进行记录,后续适当版本考虑安排,请关注后续 release notes

  • 如无特殊需求,例如按日期、大小排序, 使用 glob.glob 更加简单

  • 很棒,期待升级到 7.0+ 的版本
    继续关注和期待
    一定不能烂尾,完成了我会升级为优选

  • 1.1
    不是特别明白你的意思,现在工程直接用就行了,你指导出为别的格式吗?导出对应是导入,如果你要导入另外一个项目,现在可以用复制

    2.1
    现在都是黑底白字,反差已经最大了,你是指控件快要和背景反差大吗?这个我们标题框已经反差较大了,设置内容我们还是希望突出文字
    2.2
    我们终极目标是最好不要填写右边属性,所有信息都在流程中,因此可能不会减少图标内容,反而会增加,但是会想办法尽量优雅简介,你看见代码块什么反应呢?这种从面板上看简单,但是可读性极差
    2.3
    我们不能随意移动用户选中的控件的,你可以点击出错那一步的 cosole 中的蓝色链接,可以快速跳转到出错的控件
    2.4
    上端对齐,线条即完全水平的横行,竖线不实用,也无法对齐(因为出入口不在一边)

    3.1
    这个建议不错,不过设置起来很麻烦,我们现在都是遵循的标准的 logging level 设置(self.__logger.debug),后续我们会统一加上设置选项,现在你可以通过代码自定设定输出界别
    3.2
    这个应该很容易就能看出来吧,白线结束地方,就结束了,推荐你在最后一个组件编写备注 “流程完毕”,不过我们会考虑把 return 做成特别颜色 ( 红色),这样看得更清楚

  • 这些其实是 office 功能,win32com 是个 wrapper,类似桥梁,通过 win32com,可以支持所有 com 组件,office、sap 都是通过 com 支持的

  • 补充几个常见的写法, 针对正文中红框的元素

    b  # tag
    b.ico  # b tag , 类ico
    b.ico.ico_text # b tag , 类ico, ico_text
    b[title="查看"]  #b tag ,title="查看"  属性
    #id1  # id为 id1, 这个正文属性里面没有,此处我仅做介绍
    [title="查看"] :nth-of-type(2)  # 第二个包含 title="查看"属性的元素
    td > b > a[title="查看"]    # 路径中包含 <td> -> <b> -> <a title="查看"> 层级的元素
    

    以上写法可以组合使用,在 chrome 中,可以用 ctrl + f 来确定是不是唯一的
    如果实在找不到唯一的,有几个需要处理,或者要检查正文,可以用一下方法来查看

    for i in range(1, 20):
        try:
            string = get_text('[title="查看"] :nth-of-type(%s)' % i)
            if string == '正文':
                print('找到了正文')
                break
        except:
            print('已经遍历了所有元素')
            break
    

    这个方法可以遍历到正文 + selector 要求,get_text 是我假设获取正文的函数,大概原理如此

  • 在 8.0 版本,我们会内置此功能,操作元素前,先尝试将它移动到可视界面里
    另外 8.0 也支持消息模式(无需可视,注意,有些 js 限制必须可视才能点击,因此,不推荐该方法)

  • 对于全局函数的理解

    2018-11-28 15:21

    这个就是 python 环境和 import 知识了,python 安装目录的相应 Lib、文件当前目录、环境变量里面的 PYTHONPATH,在 import 的时候都会被搜索,注意,由于搜索的顺序不同,可能有同名文件会出现错误

  • 我记录一下这个需求,这个以后修改一下
    暂时,你使用快捷键或者不要全屏化窗口

  • 能拾取到吗?能拾取到,你可以试试如下思路:
    - 拾取 1、12、23(自己定数字),看看查找路径规律
    - 把你要的日期的当月 1 号的datetime.datetime.weekday()计算出来,就是前面空的格子,再根据路径规律,自己拼出一个路径,就知道日的查找路径了
    你可以把上面查找路径发出来,我们帮你找规律

  • 实践中发现,由于 GlobalFun. 函数名 (),会直接引用整个项目的 GlobalFun,因此引用不到复制来的项目的 globalfunction,会出现错误,因此,复制来的 NewProject3 中,不可以使用 GlobalFun

  • 上传 demo 工程是个好习惯,大家学习一下,测试一下
    双休可以用 weekday 计算,但是如果这样计算,调休需要额外考虑

  • 重视效率,这就是精益求精的代表, 👍

  • 👍 👍 👍

  • pandas 直接有方法,不用转换到 list 或者 numpy 吧
    df[df['fields'].isnull()] 来获取是 nan 的
    或者 df[df['fields'].notnull()]来获取不是 nan 的,
    这样比较简化,也节省了 df 转到 list 的时间

  • 破解极验滑动验证码

    2018-11-22 10:58

    的确厉害,想用,想做伸手党,哈哈
    后面做个工程教程板块,放些大家完整作品,等到 9.0 加入 studio 浏览并下载运行就用户体验极佳了

  • 怎么识别二维码

    2018-11-22 10:51

    我还有 2 个在线可破的方法,没互联网的就忽略吧:
    1、内置 ocr 方法:

    import iocr
    
    result = iocr.qr_code_recognize(image_path="path/to/image") #注意图片不能大于4M,大于4M使用Image的resize方法所辖
    print(result)  # result是text
    

    2、使用在线的网页上传读取
    草料
    我用这个网站解析 ueba 的二维码用了好久,后来改用方法 1 了

  • 选择框的变更触发

    2018-11-21 12:45

    其实这个问题,各位专家都遇到不少,都解决了,下次记得下一下就好

  • 👏
    等这一天等了太久了,这个论坛需要你们!加油!

  • 选择框的变更触发

    2018-11-21 10:53

    这个挺麻烦的,没这个页面的账号和这种类型的页面,你测试不出效果,但是这个做法,因为模拟人工,是遇到类似问题的通用做法

  • 如何安装 rarfile 库

    2018-11-21 10:38

    Python 的包当中,分成原生和 wrapper(包装)
    原生的 pip 即可,wrapper 需要按照原始的软件包,有时候 wrapper 也是带外部原始软件包的
    比如 rarfile,我查了一下,他说明如下:
    Features:

    • Supports both RAR3 and RAR5 format archives.
    • Supports multi volume archives.
    • Supports Unicode filenames.
    • Supports password-protected archives.
    • Supports archive and file comments.
    • Archive parsing and non-compressed files are handled in pure Python code.
    • Compressed files are extracted by executing external tool: either unrar from RARLAB or bsdtar from libarchive.
      就是说他内置了 unrar 和 bsdtar 的,只是不知道他安装到 site package 目录的哪里了,复制 lib 的时候,没复制这个 unrar 应该是之前不成功的主要原因
  • DataFrame 的内置方法 >apply> 遍历
    如果你要处理 10 万 + ~ 100 万 + 的数据,效率差异巨大, 如果你要处理数百条数据,那么哪种都行
    大家好好学,经常能用到

  • 鼠标减速拖动

    2018-11-19 10:31

    不明觉厉啊

  • 我曾经珍藏过一个奇快的网站,就在这分享给大家吧,不知道全不全

    pip3 install xlwings  -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com
    
  • 我还知道一种方法

    df[0]=df[0].apply(str, axis=1) # axis=1 表示按列
    
  • df = df[df['产品代码'].str.contains("wj")]
    

    另外 DataFrame 千万不要遍历
    你可以这样:

    def line_has_wj(row):
        if 'wj' in row['产品代码']:
    	    return 1
    	else:
    	    return 2
    
    df['if_wj']=df.apply(line_has_wj`, axis=1`)
    df = df[df['if_wj']==1]
    

    当然方式 1 最佳
    方法二我未验证,可以自己验证下
    Dataframe 中, 系统自带方法 >apply> 遍历

  • 我测试了一下,都可以保存
    注意一下,这里一保存,会跳转到项目的属性那边
    每个流程都有自己的属性,很容易搞混

  • 窗口检测错误

    2018-11-08 22:40

    8.0 版本会首先尝试将元素带到可见区域,滚动条问题 8.0 解决,大约 12 月发布

  • 窗口检测错误

    2018-11-06 10:31

    看看个人电脑的安全软件关闭一下,或者试试管理员身份运行

  • 现在没有离线版手册,请使用手机看一下

linping
  • 6 标签
  • 70 帖子
  • 397 回帖

个人主页