appium測試混合應用


最近用appium測試公司APP,APP是原生+H5的模式,測試過程中發現大部分H5的頁面使用原生的方式可以進行操作,只有少部分H5頁面的按鈕雖然在uiautomatorviewer的界面能解析出來,但是就是點擊不了,使用appium的inspect也同樣能解析就是點擊不了.

此時就需要將原生的driver切換為H5的driver

切換方法:

print(self.driver.contexts)  
#查看所有的context
#返回結果
['NATIVE_APP', 'WEBVIEW_com.huawei.browser']
#其中NATIVE_APP為原生的,WEBVIEW開頭的表示H5的
#再使用如下方法切換到H5即可
self.driver.switch_to.context("WEBVIEW_com.huawei.browser")
#使用如下方法確認是否切換成功
print(self.driver.current_context)

切換到H5的driver后之前使用的原生方式無法點擊的那個按鈕查找元素的方式也需要修改

之前用原生的方式寫法為:

//android.widget.Button[@text="確定"]

切換為H5后的寫法為:

//button[text()="確定"]

后續的操作如果要繼續使用H5的方式來執行則后面所有元素的查找方式都需要修改為webdriver的寫法

如果需要切換回原生的方法執行則使用上面的方法切換回NATIVE_APP

切換到H5后執行時發現還是提示找不到此元素

使用Chrome瀏覽器查看發現打開了多個窗口

所以還需要將窗口切換到存在此元素的頁面

切換方法如下:

def switch_to_window(driver, title):
"""此方法是根據window的title來判斷此window是否為我們需要的window"""
    windows = driver.window_handles
    #獲取所有的window
    for window in windows:
        driver.switch_to.window(window)
        #切換到其他window
        if driver.title.__contains__(title):
            #判斷此window的title與我們需要的window的title是否一致
            print("就是這個頁面!!!")
            break

切換到對應的window后可以成功點擊此按鈕

 


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com