国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

appium操控微信小程序的坑

這篇具有很好參考價值的文章主要介紹了appium操控微信小程序的坑。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

我打算使用appium操控微信小程序,只要能夠獲取到小程序的頁面元素就算成功。下面都是我遇到的問題。

打不開啟動頁面

以下是我的appium的配置參數(shù)和代碼:

desired_caps = {
    'platformName': 'Android',
    'platformVersion': '10',
    'automationName': 'uiautomator2',
    'deviceName': 'E3LBB20402214821',
    'appPackage': 'com.tencent.mm',
    'appActivity': '.ui.LauncherUI',
    'noReset': True,
    'chromedriverExecutable': 'D://selenium//86.0.4240.22//chromedriver.exe',
    'shouldTerminateApp':True,
    'showChromedriverLog': True,
}


# 指定Appium Server
server = 'http://127.0.0.1:4723'
# 新建一個driver
options = AppiumOptions()
options.load_capabilities(desired_caps)
driver = webdriver.Remote(server, options=options)

print("正在打開微信呢...")

driver.implicitly_wait(5)

driver.find_element(AppiumBy.XPATH, '//*[@text="通訊錄"]')
print("打開微信成功...")

啟動appium:

appium -g C:\Users\resus\Desktop\a.txt

C:\Users\resus\Desktop\a.txt 是日志的目錄。

現(xiàn)象:

微信沒有打開,直接就定位通訊錄。

日志:

appium操控微信小程序的坑,爬蟲,appium,微信小程序,webview,爬蟲,自動化,python,踩坑
查找問題:

appium操控微信小程序的坑,爬蟲,appium,微信小程序,webview,爬蟲,自動化,python,踩坑
他說微信已經(jīng)啟動了,我根本沒啟動啊。按照他的提示,設(shè)置一個參數(shù):

'forceAppLaunch': True

這樣就可以打開微信了。

driver的context只有NATIVE_APP

代碼:

size = driver.get_window_size()
driver.swipe(size['width'] * 0.5, size['height'] * 0.4, size['width'] * 0.5, size['height'] * 0.9)

driver.find_element(AppiumBy.XPATH, '//*[@text="球場預(yù)定"]')

print("driver context", driver.contexts)
print(driver.current_context)

# 打開小程序
driver.find_element(AppiumBy.XPATH,
                    '//*[@content-desc="球場預(yù)定,"]/android.widget.RelativeLayout[1]/android.widget.RelativeLayout[1]').click()
print("driver context", driver.contexts)
print(driver.current_context)

time.sleep(10)
print("driver context", driver.contexts)
print(driver.current_context)


小程序是運行在谷歌瀏覽器里面的,是一個進程,這種也叫webview。你要獲取里面的元素,得把上下文從微信遷到小程序。

現(xiàn)象:

我打印的結(jié)果:

driver context ['NATIVE_APP']
NATIVE_APP
driver context ['NATIVE_APP']
NATIVE_APP
driver context ['NATIVE_APP']
NATIVE_APP

Process finished with exit code 0

這樣就沒有辦法操作小程序。

日志:

appium操控微信小程序的坑,爬蟲,appium,微信小程序,webview,爬蟲,自動化,python,踩坑

根本就沒有一個webview。

我這里的問題是:沒有打開debug模式。

解決:

在微信app中打開http://debugxweb.qq.com/?inspector=true,開啟debug模式。

如何檢驗是否開啟?

在谷歌瀏覽器中輸入:chrome://inspect/#devices。在微信上打開一個小程序,如果瀏覽器能夠檢測到,那就說就說明微信已經(jīng)開啟了debug模式。

appium操控微信小程序的坑,爬蟲,appium,微信小程序,webview,爬蟲,自動化,python,踩坑

再次運行。

此時就有很多webdriver的context打印出來:

driver context ['NATIVE_APP', 'WEBVIEW_com.tencent.mm:appbrand2', 'WEBVIEW_com.tencent.mm:appbrand0', 'WEBVIEW_com.tencent.mm']

我們切換到小程序的進程,就可以拿到它的頁面源碼了:

driver.switch_to.context("WEBVIEW_com.tencent.mm:appbrand0")

print("page source:", driver.page_source)

小程序上元素找不到

如果page_source打印出來沒有問題,但是依舊定位不了元素,可能是以下原因:

  • 等我們進入到小程序的上下文了,元素定位的時候,有件事情要注意,就是要用selenium的XPATH來定位,不要用appium的:
from selenium.webdriver.common.by import By

driver.find_element(By.XPATH,'xxxxxxxxxx')

把webview想成是PC的頁面就行。文章來源地址http://www.zghlxwxcb.cn/news/detail-735226.html

  • 隱式等待打開,這個確保找不到元素是其他原因:
driver.implicitly_wait(30)
  • 如果還是找不到元素,那可能是window不對。打印一下窗口有幾個,每個窗口都去試一下。
print("window_handles:", driver.window_handles)

for window in driver.window_handles:
    try:
        driver.switch_to.window(window)
        print("current window:", driver.current_window_handle)
        print("current url:", driver.current_url)

        print(driver.find_element(By.XPATH, '//*[@id="fb-main"]/wx-view/wx-view[1]/wx-view[2]/wx-fb-common/wx-fb-base-button/wx-view/wx-van-button/wx-button/wx-view').text)
    except Exception as e:
        print(e)

到了這里,關(guān)于appium操控微信小程序的坑的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【APP自動化測試必知必會】Appium之微信小程序自動化測試

    【APP自動化測試必知必會】Appium之微信小程序自動化測試

    H5 是指第 5 代 HTML ,也指用 H5 語言制作的一切數(shù)字產(chǎn)品。 所謂 HTML 是“超文本標(biāo)記語言”的英文縮寫。我們上網(wǎng)所看到網(wǎng)頁,多數(shù)都是由 HTML 寫成的。 “超文本”是指頁面內(nèi)可以包含圖片、鏈接,甚至音樂、程序等非文字元素。而“標(biāo)記”指的是 這些超文本必須由包含屬性

    2024年02月09日
    瀏覽(122)
  • Appium自動化(15) - 針對 webview 進行自動化測試

    Appium自動化(15) - 針對 webview 進行自動化測試

    ??? 交流討論: 歡迎加入我們一起學(xué)習(xí)! ?? 資源分享 : 耗時200+小時精選的「軟件測試」資料包 ??? 教程推薦: 火遍全網(wǎng)的《軟件測試》教程?? ?? 歡迎點贊 ?? 收藏 ?留言 ?? 如有錯誤敬請指正! WebView是android中一個非常重要的控件 它的作用是用來展示一個web頁面

    2024年04月10日
    瀏覽(49)
  • Appium基礎(chǔ) — 操作微信小程序

    Appium基礎(chǔ) — 操作微信小程序

    微信小程序和微信公眾號的測試方式基本上是一樣的。 微信的小程序越來越多了,隨之帶來的問題是:小程序如何做自動化測試? 我們就以微信小程序來進行講解,介紹如何測試微信小程序。 1、測試微信小程序前提 獲取真機設(shè)備標(biāo)識。 也就是設(shè)備和電腦進行連接。 換句話

    2024年02月15日
    瀏覽(10)
  • 微信小程序webview(H5頁面)調(diào)用微信小程序支付

    1.業(yè)務(wù)描述:微信小程序商城入口進入的頁面是商城H5頁面,在H5頁面進行微信支付如何實現(xiàn); 2.微信小程序(webview訪問H5頁面)必須使用微信小程序支付; 如何實現(xiàn)以及實現(xiàn)方式以及支付后頁面返回功能: 商品詳情(h5頁面)--商品確認頁(h5頁面)--收銀臺(h5頁面)(點擊調(diào)

    2024年02月11日
    瀏覽(94)
  • 微信小程序-webview分享

    微信小程序-webview分享

    項目背景 最近有個討論區(qū)項目需要補充分享功能,希望可以支持在微信小程序進行分享,討論區(qū)是基于react的h5項目,在小程序中是使用web-view進行承載的 可行性 目標(biāo)是在打開web-view的頁面進行分享,那就需要涉及h5和小程序的通訊問題,查看官方文檔: 網(wǎng)頁向小程序 postMe

    2024年04月15日
    瀏覽(21)
  • uniapp 微信小程序webview 踩坑

    uniapp 微信小程序webview 踩坑

    微信小程序的存在許多功能上的限制和約束,有些情況不得不去使用webview進行開發(fā)實現(xiàn)需求,比如 原生無法滿足(例如某團隊維護SDK 只提供了WEB端jsSDK,且不維護小程序SDK) H5可以同時適用多端(適用范圍更廣) H5可以彌補小程序部分欠缺 微信生態(tài)有部分限制(包大小,設(shè)

    2024年02月10日
    瀏覽(54)
  • 微信小程序 webview頁面分享彈窗

    微信小程序 webview頁面分享彈窗

    公司業(yè)務(wù)需要在webview中添加分享彈窗,可以發(fā)送給朋友及生成海報分享,因為好幾個詳情都需要這個功能,因此抽離了share-sheet的組件,ui效果如下圖: 點擊分享,顯示以下彈窗 share-sheet.wxml如下: share-sheet.js如下: share-sheet.less如下: 一下均為真機測試,實際情況可能會隨

    2024年02月11日
    瀏覽(29)
  • 微信小程序通過Webview打開外部網(wǎng)站

    微信小程序通過Webview打開外部網(wǎng)站

    微信小程序是支持訪問第三方網(wǎng)站,但前提是第三方網(wǎng)站得允許訪問,因此要在第三方網(wǎng)站的根目錄下添加“業(yè)務(wù)域名” 登陸小程序后臺,找到開發(fā)設(shè)置,添加要訪問的第三方網(wǎng)站 先配置校驗文件到第三方網(wǎng)站根目錄下 ?再添加驗證。 這個時候,就可以在小程序內(nèi)通過web

    2024年02月11日
    瀏覽(16)
  • 微信小程序webview 頂部title設(shè)置

    webview取的是vue頁面的title標(biāo)簽中的內(nèi)容 在配置router時設(shè)置name值,每當(dāng)頁面跳轉(zhuǎn),路由發(fā)生改變時,動態(tài)修改頁面的title。可通過路由前置守衛(wèi)來實現(xiàn): 在webview頁面的onLoad里設(shè)置標(biāo)題:

    2024年02月12日
    瀏覽(23)
  • 使用Appium 測試微信小程序和微信公眾號方法

    使用Appium 測試微信小程序和微信公眾號方法

    由于騰訊系QQ、微信等都是基于騰訊自研X5內(nèi)核,不是google原生webview,需要打開TBS內(nèi)核Inspector調(diào)試功能才能用Chrome瀏覽器查看頁面元素,并實現(xiàn)Appium自動化測試微信小程序和微信公眾號。 前提條件Appium環(huán)境搭建,這里不多說了,可查閱Appium環(huán)境搭建文章。 因夜神等模擬器是

    2024年02月13日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包