51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

测试开发精英班,通向高级软件测试工程师【周活动】 找茬--心里圈的故事 !【长期招募】博为峰网校招聘兼职讲师!横扫BAT,Python全栈测试开发技能大全
【108期】:我有自动化问题找joykao?双11剁手不吃土,来投稿赚回血红包! 自学软件测试那点事  
查看: 119|回复: 1

[Python测试开发全栈班] caps里加如caps['automationName'] = 'UiAutomator2'之后,send_keys就报错

[复制链接]

该用户从未签到

发表于 2019-11-5 10:37:04 | 显示全部楼层 |阅读模式
老师,在caps里如果不注释掉caps['automationName'] = 'UiAutomator2, send_keys方法就报错,java.lang.Thread.run(Thread.java:818)
不是只在unittest里,顺序执行时也有这个问题,看您的视频里并没有报错呀

# 使用unitest框架实现新增笔记的脚本
import unittest
from appium.webdriver.webdriver import WebDriver
from selenium.webdriver.support.wait import WebDriverWait
import time


class TestAddNote(unittest.TestCase):
    def setUp(self):
        self.desired_caps = dict()
        self.desired_caps['automationName'] = 'UiAutomator2'
        self.desired_caps['platformName'] = 'Android'
        self.desired_caps['platformVersion'] = '6.0.1'
        self.desired_caps['deviceName'] = 'CB5A294W2D'
        self.desired_caps['unicodeKeyboard'] = True
        self.desired_caps['appPackage'] = 'com.youdao.note'
        self.desired_caps['appActivity'] = '.activity2.MainActivity t186'
        self.driver = WebDriver('http://127.0.0.1:4723/wd/hub', self.desired_caps)
        self.driver.implicitly_wait(10)

    # 测试新增笔记
    def test_case1(self):
        if WebDriverWait(self.driver, 10).until(
                lambda x: x.find_element_by_id('com.android.packageinstaller:id/permission_allow_button')):
            self.driver.find_element_by_id('com.android.packageinstaller:id/permission_allow_button').click()
        if WebDriverWait(self.driver,  10).until(lambda x: x.find_element_by_class_name('android.widget.ImageView')):
            x1 = self.driver.get_window_size()['width'] * 0.85
            x2 = self.driver.get_window_size()['width'] * 0.15
            y1 = self.driver.get_window_size()['height'] * 0.5
            self.driver.swipe(x1, y1, x2, y1)
            self.driver.find_element_by_id('com.youdao.note:id/enter_app').click()
        self.driver.find_element_by_id('com.youdao.note:id/add_note').click()
        self.driver.find_element_by_id('com.youdao.note:id/add_note_floater_add_note').click()
        self.driver.find_element_by_class_name('android.widget.FrameLayout').send_keys('content')
        self.driver.find_element_by_id('com.youdao.note:id/note_title').send_keys('title')
        self.driver.find_element_by_id('com.youdao.note:id/actionbar_complete_text').click()
        time.sleep(3)
        # 获取新增后的标题内容
        rtitle = self.driver.find_element_by_id('com.youdao.note:id/title').text
        self.assertEqual(rtitle, 'title', '新增笔记测试失败')

    def tearDown(self):
        self.driver.quit()


if __name__ == '__main__':
    unittest.main()
回复

使用道具 举报

该用户从未签到

发表于 2019-11-5 11:55:12 | 显示全部楼层
如果有Uiautomator2这句报错注释掉就可以了。
上次记得发过关于uiautomator2版本兼容性问题的资料。这是一个兼容性问题导致的。对于自动化测试而言,常用的就是send_keys和click。如果是滑动处理,就是用坐标定位。主要看我们想做什么操作。
这方面的资料找了一段时间,都没有特别详细的,都只是说和android版本有关,都不具体,如果后续能找到更详细的,我单独再发给您呵!彤彤学习非常认真,这种精神值得表扬!棒棒哒!
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /2 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2019-11-18 00:23 , Processed in 0.059321 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2019 Comsenz Inc.

快速回复 返回顶部 返回列表