【python实战系列】让别人替你操作浏览器-selenium(八)

 

日常生活中,我们无时无刻都在访问浏览器,有时用它来看看新闻;有时用它来查查资料,还可以用它看视频等等。浏览器的功能无比广泛,几乎我们想要的很多东西,都可以在浏览器上找到。

    

    我们很多时候都会用到浏览器,且很多人会用它来做很多重复而又无聊的事情,例如,每天在浏览器上打个卡,或者签个到什么的。极其无聊,但每天又不得不重复。

    各位是不是在想我是不是这次要将怎么让自己每天自动签到?想多了,我也觉得很无聊~。不过我用的这个工具Selenium却可以做到这些。让它来代替我们进行操作。

那Selenium是什么呢?

    Selenium是一个用于Web应用程序自动化测试工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。

主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好地工作在不同浏览器和操作系统之上。

    接下来我们就来实践一下,首先我们进行一下准备工作。先下载对应版本的Chrome浏览器驱动:

https://www.cnblogs.com/lizm166/p/9983377.html,下载完了之后,将其复制到python程序的启动目录下:

     这样准备工作就做好了,你以为现在就要开始操作了?不,现在才刚刚开始,我们先玩个小小的游戏:http://www.sorpack.com/dv_plus/game/csgaoshou.htm

 

 

我们先正常操作一把

游戏规则就是30秒内点击小黑点,点中分数+1,点到其他的分数-1,我刚试了一把,结果极其惨烈。

    是不是觉得一般人根本不可能达到很高的分数,但是我说的只是一般人,不排除手速快的那些大佬。接下来我们就来使用Selenium工具来代替我们操作一下:

    首先我们老规矩,先审查审查元素。游戏嘛,总要先点开始才能进行嘛,所以我们第一步是需要先模拟点击开始按钮。

找到了开始的按钮,我们就先使用程序打开这个网页,然后找到这个按钮,点击它。

from selenium import webdriver

brower = webdriver.Chrome()
brower.get("http://www.sorpack.com/dv_plus/game/csgaoshou.htm")
startStopBtn = brower.find_element_by_name("startstop")
startStopBtn.click()

    这样,第一步就完成了,接下来就是重点,我们要点击下面的黑点,那么怎么才能找到这些黑点呢?我们再次审查元素分析一下它。

通过审查元素我们发现,这些黑点是由很多个单选框组成,选中状态即代表我们看到的小黑点。也就是说,我们只需判断单元框是否被选中,如果选中了,我们再对其进行点击就行了。

那么第二步的步骤如下:先遍历所有单选框找到被选中的单选框,然后再点击它

radioBoxs = brower.find_elements_by_xpath("//input[@type='radio']")
while True:
    for radioBox in radioBoxs:
        if radioBox.is_selected():
            radioBox.click()

 

贴上完整代码,我们来运行一下,看看效果:

from selenium import webdriver

brower = webdriver.Chrome()
brower.get("http://www.sorpack.com/dv_plus/game/csgaoshou.htm")
try:
    startStopBtn = brower.find_element_by_name("startstop")
    startStopBtn.click()

    radioBoxs = brower.find_elements_by_xpath("//input[@type='radio']")
    while True:
        for radioBox in radioBoxs:
            if radioBox.is_selected():
                radioBox.click()
        timeValue = brower.find_element_by_name("timeleft").get_attribute("value")
        print(timeValue)
        if int(timeValue) == 1:
            print("exit")
            break

finally:
    print("结束")

 

 

效果:

 

 

喜欢本文的话,可以关注一下公众号,每天定时更新一篇python学习日记,让我们一起成长!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值