如上图,如何判断页面上是否存在” 下载 “这个 textview 呢?
我试了下面的方法,不行 打印 el 结果是:[object Promise]
如果用 if(browser.elementByName("下载") != null){ console.log('element which text is "download" is exist'); } 每次都会打印出那句话
try: WebDriverWait(dr,30).until(EC.presence_of_element_located((By.NAME,"下载"))) except: print "got exception" else: print "not exception"
#1 楼 @misnull 不好意思,看不懂是什么意思,我把代码改成了 .then(function(){ try{ WebDriverWait(dr,30).until(EC.presence_of_element_located((By.NAME,"下载"))) } catch(E){ console.log("got exception"); } }) 这样的结果是把 promise 对象打印出来了,和我的第一个方法是一样的结果。 如何能说明找到了” 下载 “这个 textview 控件呢? 或者说可以取到 textView 的 text,进行字符串比较,比如 var t = driver.elementByXPath(".....").text(); if (t == "下载"){ console.log("find it"); }
目前是这样尝试的,可是 t 还是一个 promise 对象,不是 string
Appium 里的 webdriverwait 不一定能用。 参考一下这个http://testerhome.com/topics/1206
#3 楼 @anikikun 可以用,但是不知道 elementByName 返回的是什么对象,如果找不到元素是不是返回空。换句话说,如何判断是找到了,还是没找到。
#4 楼 @xingjizhao 找不到元素是抛出异常,findElementsByXXX 才是找不到元素时,返回空列表
为什么 find_element_by_id 会直接抛出 nosuchelementExecption,而不是返回一个 null,按这样代码很多地方都要 trycatch
刚试了一下,发现中文的用 elementByName 识别不了