Appium 1.5 以上无法使用by_name 定位的解决办法

1. 使用by_xpath 代替

s='立即注册'

driver.find_element(By.XPATH,"//*[@text='%s']"%s)

可以通过这种方式间接变成 by_name 的方法, 而且用法变化不大,封装好后的方法:


def get_element_by_text(self,text):

   try:

           WebDriverWait(self.driver,5,0.5).until(lambdadriver:driver.find_element(By.XPATH,"//*[@text='%s']"%text).is_displayed())

           return  self.driver.find_element(By.XPATH,"//*[@text='%s']"%text)

    except:

        print(u"%s 页面中未能找到 %s 元素"%(self, text))

2.如果代码中已经使用了by_name 的方法,可以替换成 xpath

因为我使用了po的设计模式,所有的基础方法都在Object_base 里面重新封装了的,所以我只需要修改封装方法即可 


这是我之前封装的方法,这里使用(By.name)时会报错

修改后:


这里先看传入的loc是否是 name 如果是 就重新修改成xpath 方法。

3.转载自博客 http://blog.csdn.net/wuyepiaoxue789/article/details/78411170

通过修改 driver.js 文件来重新使用by_name 功能(由于这里我并没有成功实现,所以仅供大家参考)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。