Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

airtest-selenium的airtest_touch方法中设置的图片点击位置不生效 #7

Open
harry-or-potter opened this issue Dec 16, 2019 · 21 comments
Assignees

Comments

@harry-or-potter
Copy link

airtestIDE版本,V1.2.2
airtest-selenium的代码中设置了图片点击位置target_pos参数:
driver.airtest_touch(Template(r"tpl1576225275147.png", target_pos=8, record_pos=(27.35, 7.145), resolution=(100, 100)))

实际运行时点击的图片位置仍是5

@harry-or-potter
Copy link
Author

harry-or-potter commented Dec 16, 2019

另外airtest-selenium中的airtest_touch方法,对于定位到了的图片的点击,也是很容易没有反应,看日志是点击了,运行的时候语句也是通过的,但是实际上没发生点击,不知道是为什么
111

@yimelia
Copy link
Member

yimelia commented Dec 17, 2019

第一个问题应该是因为airtest_selenium的touch没支持target_pos 参数导致的。
第二个问题的话,需要确认在运行任务时,鼠标没有被占用、且浏览器窗口在最前。因为airtest的点击是需要占用鼠标的,如果窗口被其他程序遮挡,可能也会导致没点到

@harry-or-potter
Copy link
Author

第一个问题有修复计划吗
第二个问题刚确认了运行时鼠标没被占用,窗口在最前

近期打算做个分享会用到这个,这就尴尬了

@harry-or-potter
Copy link
Author

对同一个按钮图片进行点击和断言,都能定位到,断言图片存在也是对的,就是不能点击

@yimelia
Copy link
Member

yimelia commented Dec 17, 2019

第一个问题要下周才有时间修复,我先标记为bug。
第二个问题比较奇怪了,试一下如果不点这个按钮,点的是别的位置,也会失效吗?
以及失效是必然的,还是偶现的问题

@yimelia yimelia self-assigned this Dec 17, 2019
@harry-or-potter
Copy link
Author

第二个问题就我目前用了这段时间的airtest-selenium来说90%的按钮都点击不到
只有一天晚上灵光乍现突然点击成功了几次,但是同样的代码合页面完全没变的情况下第二天我运行就不能点击了,然后后面不管怎么截图都点击不到
之前找qq上你们一个同事聊了下发现了target_pos的问题,后来我确认发现就算是点击位置在默认5的位置的按钮其实也点击不成功

@yimelia
Copy link
Member

yimelia commented Dec 17, 2019

目前想知道,就是页面上面的其他位置能否点击成功?(比如点其他的链接、图片之类的)
想看看到底是这个按钮不能点到,还是整个页面都点不了

@harry-or-potter
Copy link
Author

我专门试了下,应该是按钮都点不到
换了另一个系统找了几个菜单和按钮
都是能定位到,代码执行结果也是pass的,但就是没发生点击效果
辛苦你们核实下

@yimelia
Copy link
Member

yimelia commented Dec 17, 2019

我们这边暂时没遇到类似问题,能否提供一下你们的脚本内容、测试的网页url?
如果不方便提供URL的话,可以考虑用一些其他网站来点击试试

@harry-or-potter
Copy link
Author

方便加下qq不,491840028

@yimelia
Copy link
Member

yimelia commented Dec 17, 2019

电脑不能上Q,如果可以的话,在你们脚本里面试一下开启百度,然后点击百度网页上的按钮看看是否有效。
目前还不清楚到底是环境问题,还是只有你们的网站有问题

@harry-or-potter
Copy link
Author

我刚才试了下qq.com,可以点击
我们的系统我操作了两个后台管理系统和一个商城系统,都不行
有点尬

@yimelia
Copy link
Member

yimelia commented Dec 17, 2019

不要用airtest_selenium的截图touch,先直接用selenium去获取到你们网页里的按钮+点击,看看这样能不能点?

@harry-or-potter
Copy link
Author

我find_element_by_xxx找到的元素来click是OK的

@harry-or-potter
Copy link
Author

gsAdmin.air.zip
代码在这里,你运行一下试试看呢

@harry-or-potter
Copy link
Author

ff5f0eb01a1af1977a59ab06e93bc16f.zip
qq首页.air.zip
我又测了下qq首页和百度,窗口不最大化运行的时候qq的基本都能点击,但是窗口最大化后就运行成功但是不会点击了
百度的搜索按钮一直不能点击,代码和测试报告见附件

@yimelia
Copy link
Member

yimelia commented Dec 17, 2019

我这里简单测试了一下你的那个qq首页.air,窗口最大化之后也可以点击:
image

前两张图(立刻体验、以及那张新闻里的照片)都可以点击,第三张”体育APP“会因为图像识别失败而找不到。
我的环境是win7,单屏幕,最新版本chrome

@harry-or-potter
Copy link
Author

我是双屏(试了单屏效果一样的)
chrome版本 74.0.3729.131(正式版本) (32 位)
我试试火狐看

@harry-or-potter
Copy link
Author

1.尝试了更新浏览器版本到最新的79.0.3945.88(正式版本) (64 位)并更新对应chromedriver.exe
2.使用了WebFireFox

结果都是一样的,图片基本上点击不到
目前看只有先不用图片点击操作了

@harry-or-potter
Copy link
Author

我debug了一下airtest_touch方法,发现
pos = self._get_left_up_offset()
pos = (pos[0] + x, pos[1] + y)
self._move_to_pos(pos)
self._click_current_pos()
里面的self._move_to_pos(pos)的时候鼠标位置移动的不对,不太确定是因为pos计算的值不对还是计算对了但是move方法不对,不知道这个pos是怎么理解的,当前浏览器窗口的分辨率吗?最低是(0,0),最高是(1920,1080)这样么

@harry-or-potter
Copy link
Author

已经确认,win10下移动鼠标到目标位置有问题,麻烦大佬们看看了

@EraChen233 EraChen233 transferred this issue from AirtestProject/Airtest Feb 21, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants