哈哈哈!这个问题我早就解决了,换一个 ChromeDriver.exe,换成 2.14 版本的就解决了。这个我 google 过,是低版本 ChromeDriver 的 bug。
快谢谢我吧- 3- @mads
#6 楼 @mads 主要方法是在本 Context 找不到控件,就转换一下 Context。由于 Selendroid 模式下有 bug,我们现在只支持 4.4+ 的 Hybrid,也就是要在 WebView Context 下识别。
下面这个是关键的方法,C#:
private void ChangeToNextContext()
{
String curContext = driver.GetContext();
List<string> webcontexts = driver.GetContexts();
Logger.LogHelper.debug("...[Debug]Context number: " + webcontexts.Count);
if(webcontexts.Count > 1){
if (webcontexts[0] != curContext)
{
try
{
Logger.LogHelper.debug("...[Debug]Change SetContext to: " + webcontexts[0]);
driver.SetContext(webcontexts[0]);
}
catch (Exception ex)
{
Logger.LogHelper.debug("[Error]SetContext error:" + ex.ToString());
}
}
else
{
try
{
Logger.LogHelper.debug("Change SetContext to: " + webcontexts[1]);
driver.SetContext(webcontexts[1]);
}
catch (Exception ex)
{
Logger.LogHelper.debug("SetContext error:" + ex.ToString());
}
}
}
}
#2 楼 @zb460989093 点击就是简单的 element.click()。分辨率应该是没问题的,使用 adb shell dumpsys window displays 来获取的。
#14 楼 @lihuazhang 我看你把地址 chrome-devtools-frontend.appspot.com:443 换成了 baidu.com??请问在哪里设置的?还是修改源码?
赞,monkey 辛苦啦!
#1 楼 @chichimei 顶妹纸
顶一个!
粤语的 “520” 发音意思是:“唔要你”
#16 楼 @chenhengjie123 确实是坑,在 Selendroid 模式下需要用@Value来定位,而不是用@Text。另外我现在用的 Appium 上 Selendroid 有 bug,在新的 0.15 版本上有 fix。
https://github.com/selendroid/selendroid/issues/309#issuecomment-36837808
不知道 Appium1.4 会不会使用 Selendroid0.15 以上的版本捏?~
#14 楼 @chenhengjie123 用了 Selendroid 之后我就识别不了基本的 Native 元素了。我用的是 Xpath。使用 Selendroid 有什么要注意的吗?我已经设置了 grunt setConfigVer:selendroid。
#12 楼 @chenhengjie123 问你个问题,在真机 Android4.3 机器上,看不到 WEBVIEW Context 怎么搞?setWebContentsDebuggingEnabled 只对 Android4.4 以上有用哦……