python iphone自动化_【Mac + Appium + Python3.6学习(四)】之常用的IOS自动化测试API总结...

环境:

Appium:1.9.1

Appium-desktop:1.7.1

Xcode:10.0

IOS:iPhone5S(10.3.3)

Mac:10.13.6

①获取手机屏幕size:长、宽

解决办法:

#修改路径

......\...python3.6.1-path\Lib\site-packages\selenium\webdriver\remote\remote_connection.py#300行#原代码

Command.W3C_GET_WINDOW_SIZE:

('GET', '/session/$sessionId/window/size'),#替换为

Command.W3C_GET_WINDOW_SIZE:

('GET','/session/$sessionId/window/$windowHandle/size'),

解决size报错之后:

#获取手机屏幕长和宽

self.size =self.d.get_window_size()#获取宽度一半

self.half_Width = self.size['width']/2

#获取长度一半

self.half_Width = self.size['height']/2

②滑动方法:

defdo_swipe(self,x1,y1,x2,y2):'''# 滑动方法

:return:'''self.d.execute_script("mobile: dragFromToForDuration",

{"fromX": x1, "fromY": y1, "toX": x2, "toY": y2, "duration": 0.5})

②-1:上、下、左、右,滚动方法:

driver.execute_script('mobile:scroll', {'direction': '参数'})#参数:down,up,right,left

②-2:另外,如果想模拟滑动轨迹,如手势解锁,可以这样(先make一下:TouchAction)

# 只供参考,但是不适用于pythonfinal TouchAction gesture = newTouchAction(driver).press(startX, stratY)

.moveTo(startX, stratY+height)

.moveTo(startX, stratY+ height +height)

.moveTo(startX+ width, stratY + height +height).release();

gesture.perform();

③多个相同元素定位:

如图这里会定位出多个相同元素的信息,如果那个appium-desktop定位不出元素,我们就采取这种方式获取属性定位。

既然找到元素属性了,那如何写代码定位呢?如下:

#点击第一个相同元素

self.d.find_elements_by_name("home arrow news")[0].click()#点击第二个相同元素

self.d.find_elements_by_name("home arrow news")[1].click()#点击第三个相同元素

self.d.find_elements_by_name("home arrow news")[2].click()

只需要加上【index】角标即可。

④隐藏弹出的输入法,因为怎么试都不行,后来采取的定位背景元素,点击背景,这样就可以间接关闭输入法。

⑤判断可不可以点击元素:

defisExist(self,i):'''# 判断可不可以点击元素

:param i:

:return:'''

try:print("已选择:[%s]" %i)

self.d.find_element_by_name(i).click()returnTrueexcept:return False

⑤-1判断元素存不存在:

exist =self.d.find_element_by_name(i).is_enabled()print(exist)#True/False

⑥常用定位元素方法:

#class_name定位

self.d.find_element(By.CLASS_NAME,"XCUIElementTypeTextField")#accessibility_id定位

self.d.find_element_by_accessibility_id("login_bg_top")#name定位

self.d.find_element_by_name("home btn newtask")#xpath定位

self.d.find_element_by_xpath('//XCUIElementTypeStaticText[@name="xxx"]')#还有其他的等等定位详情参考附录的文章

⑦点击元素

self.d.find_element_by_name("home btn newtask").click()

⑧输入值

self.d.find_element_by_accessibility_id("请输入内容").send_keys("xxx")

⑨断言

#获取元素的值进行断言

text = self.d.find_element_by_accessibility_id("xxx").textprint(text)

self.assertEqual(text,"xxx","显示不对!")

附录:

其他appium-IOS自动化API写法参考如下:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值