前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【实测】用python解决 找色差方块小游戏

【实测】用python解决 找色差方块小游戏

作者头像
我去热饭
发布2022-05-19 16:23:19
2K0
发布2022-05-19 16:23:19
举报
文章被收录于专栏:测试开发干货

这几天群里很火的小游戏:找色差

大家玩的不亦乐乎,纷纷群内炫耀自己的分数。

所以,我这就赶紧写了脚本,否则我的分数 太丢人了....

首先新建个.py文件。引入selenium 正常的开头:

进入了这个小功能的首页后,就是要点击开始按钮了:

我用它的class来定位:

点击后便开始了。

这里我找到了颜色不同的属性,利用这一点,我们可以很简单的去对比,找出那个rgb颜色 数值不同的,就是颜色不同的。

代码中,根据xpath 来获取到 这些方块。用的复数哦~

注意我们的代码,应该是在一个无限的大循环下。

这个循环就是每一关:

然后我们遍历这个all, 来找出那个不同的元素,并点击。

这里我不断的用前一个去比后一个,如果相同则继续。否则就继续比更下一个,判断出谁是特殊。

如果到最后俩个还没确定,引起all[i+2] 下标越界, 那说明就是最后俩个。

但是倒数第二个,如果是特殊的,那么上一次循环,它做为all[i+1]时,应该已经被比出来了。

所以如果引发报错,那么就一定是最后一个,也就是当前的all[i+1]是特殊点。

这里逻辑比较绕,大家可以自己多想几次。

然后就是测试时间:

大家可以优化下这个代码,看看谁的分最高!

考验算法能力的时候到了!!!

代码语言:javascript
复制
from selenium import webdriver
import time

driver = webdriver.Chrome()

driver.get('https://www.zhaosecha.com/')

time.sleep(2)

driver.find_element_by_class_name('play-btn').click() # 开始按钮

while True:

    all = driver.find_elements_by_xpath('//*[@id="box"]/*') #获取所有方块

    for i in range(len(all)):
        if all[i].get_attribute('style') != all[i+1].get_attribute('style') : #特殊方块存在其一

            try:
                if all[i].get_attribute('style') != all[i+2].get_attribute('style'):  # 那么确定i是特殊点
                    all[i].click()
                    break
                else: #确定i+1是特殊点
                    all[i+1].click()
                    break

            except: #如果报错,说明已经比对到最后俩个方块。而前面的如果已经比对过,那说明应该不是特殊的。否则已经被比出来了
                all[i+1].click() #所以确定是最后一个特殊方块。
                break

    time.sleep(0.1)

最后再透漏个更快几倍的办法。

就是利用xpath直接找出属性style不等于正常值的那个按钮直接点击哦…

有兴趣的小伙伴可以自行试试~

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-04-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 测试开发干货 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档