结构如下:
String UiSelector="new UiSelector().className(\"android.widget.RelativeLayout\").childSelector(new UiSelector().className(\"android.widget.TextView\").text(\"Test邮件123xfm8c1o5\"))";
String xx=driver.findElementByAndroidUIAutomator(UiSelector).getText();
System.out.print("xx="+xx+"\n");
打印的是:Test222邮件123xfm8c1o5,也就是index为2的那个TextView节点。
问题:如何根据text是指定值的节点获取它的兄弟节点?
比如根据text值是Test邮件123xfm8c1o5的那个节点获取它的兄弟节点(index是0的那个textView)尝试:
driver.findElementsByAndroidUIAutomator(UiSelector+".fromParent(\"android.widget.RelativeLayout\").childSelector(new UiSelector().className(\"android.widget.TextView\").text(\"xfm8c1o5_1@qa186.cn\"))"
);
报错:
org.openqa.selenium.WebDriverException: An unknown server-side error occurred while processing the command. (WARNING: The server did not provide any stacktrace information)
转载文章时务必注明原作者及原始链接,并注明「发表于 TesterHome 」,并不得对作品进行修改。
pajack · #1 · 2014年08月11日
可以试下 getFromParent().
liqing380 · #2 · 2014年08月11日
pajack · #3 · 2014年08月11日
@liqing380
假设你已定义了一个节点 "Test邮件"UiObject mail = new UiObject(new UiSelector().text("Test邮件"));
利用该节点找到其兄弟:UiObject content = mail.getFromParent(new UiSelector().text("Text内容"));
这是UiAutomator 的写法,在Appium 里要稍微变一下。
liqing380 · #4 · 2014年08月12日
kuroky · #5 · 2014年08月12日
#4楼 @liqing380 给力
tianwei024 · #6 · 2014年08月13日
学习!!
tom_ma · #7 · 2014年08月13日
学习~~
xiang2743 · #8 · 2014年08月28日
xiang2743 · #9 · 2014年08月28日
#4楼 @liqing380 UiObject mail = new UiObject(new UiSelector().text("Test邮件")); 你这种用法,不会提示中文乱码吗。
我试了下:运行用例时,提示:INSTRUMENTATION_STATUS: stack=com.android.uiautomator.core.UiObjectNotFoundException: UiSelector[TEXT=锟街伙拷锟絔
有什么解决办法吗
xiang2743 · #10 · 2014年08月28日
liqing380 · #11 · 2014年08月28日
#10楼 @xiang2743 我这边很正常,没有乱码呢
xiang2743 · #12 · 2014年08月28日
不好意思,我找到原因了,是因为编码的问题,改为UTF-8 就可以了
- 请注意单词拼写,以及中英文排版,参考此页
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码`, 更多语法请见这里 Markdown 语法 - 支持表情,使用方法请点击☺
- 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif
- 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空