51Testing软件测试论坛
标题:
caps里加如caps['automationName'] = 'UiAutomator2'之后,send_keys就报错
[打印本页]
作者:
gyz644
时间:
2019-11-5 10:37
标题:
caps里加如caps['automationName'] = 'UiAutomator2'之后,send_keys就报错
老师,在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
如果有Uiautomator2这句报错注释掉就可以了。
上次记得发过关于uiautomator2版本兼容性问题的资料。这是一个兼容性问题导致的。对于自动化测试而言,常用的就是send_keys和click。如果是滑动处理,就是用坐标定位。主要看我们想做什么操作。
这方面的资料找了一段时间,都没有特别详细的,都只是说和android版本有关,都不具体,如果后续能找到更详细的,我单独再发给您呵!彤彤学习非常认真,这种精神值得表扬!棒棒哒!
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2