原文 Python + Selenium 自动化测试《人生重开模拟器》
背景
最近有一款小游戏特别火,叫《人生重开模拟器》,这款游戏用黑色幽默的调侃形式,随机生成你的人生大事件列表,开场还能抽取天赋加点,趣味性十足。
因为官网访问流量过大,有的朋友出现访问白屏、网页失效的情况,小编在这里发一个最新的人生重开模拟器在线链接:
不停地重开自己的人生之后,小编想着能不能写个脚本来自动化运行这款游戏,因为是纯网页操作,所以可以使用Python和Selenium组合的自动化测试神器来测试下。
思路
因为本质上这个游戏是一系列的网页操作,所以实现起来比较简单,就当是复习下Selenium的基本元素操作。想入门Python的童鞋可以看下,
以前小编写过一个 Python+Selenium自动化测试合成大西瓜一样可以作为学习。
注意:这不是一个智能的提高游戏分数的脚本,只是一个演示自动化测试学习案例,帮助大家更好的理解selenium的用法。
开发环境
- 下载Python并安装
- 安装pip
- 安装Selenium和浏览器webdriver
mac平台和windows平台有所不同,安装时注意下环境。细节问题这里就不列出了,大家多用户谷歌。
如果下载Python或者pip安装比较慢的,可以参考下这篇博文进行加速。
安装py模块神器
代码
环境准备好之后,直接复制以下代码到.py文件里,比如main.py,执行 python main.py 即可启动webdriver运行自动化人生重开模拟器。
from selenium import webdriver
from time import sleep
import random
mobile_emulation = {'deviceName': 'iPhone 5'}
options = webdriver.ChromeOptions()
options.add_experimental_option("mobileEmulation", mobile_emulation)
driver = webdriver.Chrome(chrome_options=options)
driver.set_window_rect(0,0,700,700)
sleep(1)
driver.get('https://dushusir.com/life')
driver.implicitly_wait(5)
restart = driver.find_element_by_id('restart')
restart.click()
sleep(1)
driver.find_element_by_id('random').click()
sleep(1)
randomOne = random.randint(1,3)
randomTwo = random.randint(4,6)
randomThree = random.randint(7,10)
driver.find_element_by_css_selector("#talents li:nth-of-type("+ str(randomOne) +")").click()
driver.find_element_by_css_selector("#talents li:nth-of-type("+ str(randomTwo) +")").click()
driver.find_element_by_css_selector("#talents li:nth-of-type("+ str(randomThree) +")").click()
driver.find_element_by_css_selector("#next").click()
sleep(1)
driver.find_element_by_css_selector("#random").click()
sleep(2)
driver.find_element_by_css_selector("#start").click()
isOver = False
life = 0
while(not isOver):
driver.find_element_by_css_selector("#lifeTrajectory").click()
print('点击一次'+str(life))
sleep(1)
li = driver.find_elements_by_css_selector("#lifeTrajectory li")
currt_life = len(li)
if currt_life > life:
life = currt_life
else:
isOver = True
print('结束')
driver.find_element_by_id('summary').click()
sleep(5)
driver.quit()
总结
程序写的比较粗略,很多细节还没有完善,不过可以作为小案例参考,也欢迎大家批评指出问题。后续有时间再分享更多有用的测试脚本和好玩的游戏。
参考
|