美文网首页
Appium 1.5 以上无法使用by_name 定位的解决办法

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

作者: DanHei様 | 来源:发表于2017-12-07 11:58 被阅读0次

    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 功能(由于这里我并没有成功实现,所以仅供大家参考)

    相关文章

      网友评论

          本文标题:Appium 1.5 以上无法使用by_name 定位的解决办法

          本文链接:https://www.haomeiwen.com/subject/twhdixtx.html