#2 楼 @lihuazhang
这是 ruby?
不太会看这代码,无所谓了,现在想想用可能 swipe 也能实现,原地 swipe,把时间加长。
btn=webdriver.find_element_by_tag_name(button)
这一句找到的 btn 是第一个 button 而不是 button 列表,不能用索引 index 再定位。
跳进 webview 里面,使用 while 循环判断加载完成的标志,可行不?
find_element(:name, "@id")
是用 by name 定位吧?
用 id 应该是 find_element_by_id(python),好像 appium 用不了 by id 定位吧?
请纠正。
是不是 FQInstruments?
ios-sim 搞定,觉得比 appium 调用的 simulator 还丰富,还能指定 sdk 版本,是否为 retina,只是现在无法打开 iphone 3.5 寸屏 + ios 7,及无法指定 simulator 的大小 (3 种尺寸,如果用 sikuli 测的话,可能出问题)
升级到最新的 0.15 版本,还是有此问题,不知道为啥官网没修复此问题。
#4 楼 @lihuazhang
年初五就上班了,本来是初四上班的,初三刚好是礼拜,补假一天。
重新安装回 0.13 版本,就 OK 了,看来是最新版本 0.14 的问题。
#1 楼 @lihuazhang
也看到了 error 信息,在 appium google group 上也谈到这个问题,似乎还没有人提供解决方法。
https://groups.google.com/forum/#! msg/appium-discuss/_cpU7V7OMUI/fVOHY20zLj8J
使用 pythont 做 test case 的也是,当使用 python 的 unit test 写 ios test case 时每个 test case 都会重新打开模拟器。
7 楼 @spikeshen
哦,是的,比如说在 ios 中,把页面中名为"Check In"的按钮找到,获取这个按钮的属性"name"值:
当然,"Check In"按钮在这页面中要唯一。
find_element_by_name("Check In").get_attribute("name")
#3 楼 @zws20041984
忘了说了,是 python,应该是
find_element_by_[name/tag_name/xpath].get_attribute("value")
find_element_by_name/tag_name/xpath.getAttribute("attribute_name")
如果加断言怎么加?
在 try 段中,直接使用 assertEqual() 出现报错。
#17 楼 @spikeshen
谢谢 spikeshen
#15 楼 @seveniruby
目前来说,只能是 xpath 了,看了下论坛的元素定位的文檔,说元素定位 3 种方式,by_name, by_tag_name, by_xpath。
并没有其他的,这样的话,如果 name 是空的话,只能是 xpath 一次性精确定位了。
#13 楼 @spikeshen
tag_name 是也可以找到的,但这里的找到现在我还是没转过弯来。
比如说使用 elements 找到所有的按钮,可以通过下标来定位哪个按钮,但如果直接使用 element_by_tag_name 的话,是不是也是 element_by_tag_name('args'),这个 agrs 应该是什么才对?
问题已经解决了。
在 inspector 上看到,原来这个 sync 按钮的 name 是空的,就算是使用 find_element_by_name(""),名为空都找不到,现在使用 xpath 可以找到了。
谢谢各位的帮忙,及谢谢恒温在 qq 解答怎么打开 inspector 的初级问题。
在 inspector 上可以看到 xpath,现在的问题是,高亮部分不准确。
我先得解决这个问题先。
#9 楼 @spikeshen
不好意思,在 app 上用 xpath 还不会用,在 firefox 浏览器上使用 firebug+xpath finder 倒是容易定位元素的 xpath。
#7 楼 @spikeshen
是的,我怀疑是不是 adhoc 按钮是在一个 view 里,而 sync 按钮是在另一个 view 里,找 button 时只在 adhoc 的 view 查找,所以找不到 sync 按钮,这只是我的猜测而已。
请问怎样跳到 sync 上层的 view,进而找按钮呢?
谢谢
#5 楼 @spikeshen
不是,是想找 sync 按钮,再 click 这个按键。
之所以用 len 是因为找不到 sync 按钮,想找出所有的 button,再 print 出每个按钮的 text,看看 sync 按钮在不在里面,但我用错了方法,如 seveniruby 所说的,应该用 elements,复数,但我用了单数,所以报错。
使用了 btns = wd.find_elements_by_name('button'),再 print 按钮的 text,发现没有"Sync"的按键文本。
如果使用 tag_name 的话,也是找不到 sync 这个按钮
#1 楼 @seveniruby
不好意思,原生,混合是怎样区分的?
我用 btns = wd.find_element_by_name('button') 去找 button,使用 print len(btns) 却报错了。
所以现在也不知道能找到几个 button。