美文网首页
第三篇:进入庭院

第三篇:进入庭院

作者: Lylia428 | 来源:发表于2017-03-16 18:32 被阅读0次

    前言

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

    实现步骤:

    进入游戏


    更新界面
    进入到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
    

    相关文章

      网友评论

          本文标题:第三篇:进入庭院

          本文链接:https://www.haomeiwen.com/subject/slmjnttx.html