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

 

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

    

【python实战系列】让别人替你操作浏览器-selenium(八)_第1张图片

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

【python实战系列】让别人替你操作浏览器-selenium(八)_第2张图片

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

【python实战系列】让别人替你操作浏览器-selenium(八)_第3张图片

那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程序的启动目录下:

【python实战系列】让别人替你操作浏览器-selenium(八)_第4张图片

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

 

【python实战系列】让别人替你操作浏览器-selenium(八)_第5张图片

 

我们先正常操作一把

【python实战系列】让别人替你操作浏览器-selenium(八)_第6张图片

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

【python实战系列】让别人替你操作浏览器-selenium(八)_第7张图片

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

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

【python实战系列】让别人替你操作浏览器-selenium(八)_第8张图片

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

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()

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

【python实战系列】让别人替你操作浏览器-selenium(八)_第9张图片

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

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

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实战系列】让别人替你操作浏览器-selenium(八)_第10张图片

【python实战系列】让别人替你操作浏览器-selenium(八)_第11张图片

 

【python实战系列】让别人替你操作浏览器-selenium(八)_第12张图片

 

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

你可能感兴趣的:(python实战系列)