偶然想起这款游戏,又去玩了一会,突然想到最近用的selenium driver似乎可以自动化完成这个事情,想来应该可行
思考了一下,用selenium自动登录倒是很好搞定,但是想要确定点击位置就比较麻烦。因为是Flash游戏,不能打代码的主意,倒是可以截图分析图片,最初的想法是保存一个没有圈圈的图片,然后拿有圈圈的图片做对比,找出差异的地方,进行定位,我没有这么做,不知道PIL能不能做这个事情。在搜索的过程中,找到了更好的方法,使用OpenCV的函数可以识别圆。
整体流程如下:
QQ登录
selenium模拟登录很简单,唯一需要注意的就是操作登录框的时候需要切换iframe,当登录完成后返回之前的环境
driver.switch_to.frame(driver.find_element(By.ID,'loginFrame'))
driver.switch_to.default_content()
driver.switch_to.frame(driver.find_element(By.ID,'loginFrame'))
driver.switch_to.default_content()
进入游戏页面后,延时10s等待游戏加载完成,然乎使用selenium获取元素定位
ele=driver.find_element(By.ID,"FlashContainId")
location=ele.location
size=ele.size
ele=driver.find_element(By.ID,"Flash