第三篇:进入庭院

2017-03-16  本文已影响0人  Lylia428

前言

到第三篇,终于可以进入到游戏到庭院里面了。。

实现步骤:

进入游戏


更新界面
进入到app的第一个页面,会监测有没有自动更新。仔细看inspector就会发现,这整个页面是一个图层,选button什么的都看不到。这个时候就需要我们截图然后用图像识别技术来确定元素了。

242E6A39-1ECC-40A6-B252-BB6E0205BA3B.png

新建一个images文件夹,把确定截图截下来,放到文件夹里面。我用的是1920*1080的手机,命名后面都添加了分辨率的识别标志。

Paste_Image.png

然后写代码,就可以点到这个确定进入下一个页面了。

driver.click_image(u'./images/confirm.1920x1080.png', timeout=5, safe = True)

播放视频界面
来到视频界面是可以通过点击屏幕直接跳过的,很简单,随便点屏幕上的哪个点:

driver.click(150,150)

公告界面
游戏中间又有公告,我们需要监测到公告然后把它关掉。这里的操作步骤和点击确定界面是一样的。先截图,然后操作点那个叉叉
进入游戏界面
点完公告,程序会loading一会,这里需要10s左右,可以设置一个sleep函数吧。然后截图找元素,点击进入游戏

login_page.jpg
点击屏幕
进入游戏点完了还要再点击一遍屏幕才能进入游戏界面。
<code>driver.click(150,150)</code>这个函数没有等待时间,往往运行到这里的时候页面还没加出来,所有以让程序再睡一会儿吧。。

整体实现


import atx
import time

driver = atx.connect('http://localhost:8100',platform='ios')
driver.start_app('com.netease.onmyoji')

driver.click_image(u'./images/confirm.1920x1080.png', timeout=5, safe = True)
driver.click(150,150)

driver.click_image(u'./images/cancelAnnouncement.1920x1080.png', timeout=5, safe = True)

time.sleep(10)
driver.click_image(u'./images/login.1920x1080.png', timeout=5, safe = True)

time.sleep(2)
driver.click(150,150)

print ("已进入庭院")

发现的问题: 图片的路径还要带 <code>./images/</code>,很明显这不是很方便。遵循着小步重构的原则,我们要图片等统一路径设置给解决了:<code>driver.image_path = [".", "images"]</code>,看源码是可以这么解决的,但是还有问题呀。。要炸了,明天再写

 def get_applications_in_country(l):
        text = """Australia Brasil Canada China Chile Ecuador Germany India Italy Singapore Spain Turkey UK USA Uganda Thailand"""
        countries = text.strip().split()
        country = random.choice(countries)
        params = {
            "country": country,
            "status": "active"
        }
    
        with l.client.get("/candidates", params=params, headers={"x-api-key": API_KEY}, catch_response=True) as response:
            if "errorMessage" in response.text:
                response.failure("Error occurs in response: %s" % response.text)
                
    class UserBehavior(TaskSet):
        tasks = {
            get_applications_in_country: 1
        }
   
    class WebsiteUser(HttpLocust):
        task_set = UserBehavior
        min_wait = 2000
        max_wait = 5000
上一篇 下一篇

猜你喜欢

热点阅读