将上下文更改为 webview Python/Appium 后无法在混合应用程序中定位元素

问题描述 投票:0回答:0
import time

from appium import webdriver
from selenium.webdriver.common.by import By

desired_caps=dict(

    deviceName='Android',
    platformName='Android',
    appPackage= 'com.android.chrome',
    appActivity='org.chromium.chrome.browser.ChromeTabbedActivity'

)
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
driver.implicitly_wait(10)

driver.get('http://google.com')

contexts= driver.contexts

for context in contexts:
    print(context)

driver.switch_to.context('WEBVIEW_chrome')

time.sleep(1)
driver.find_element(By.XPATH, "//*[@name='q']").send_keys("Hello Appium !!!")

time.sleep(2)
driver.quit()

我找不到元素和执行脚本,我得到同样的错误:

selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//*[@name='q']"}
  (Session info: chrome=112.0.5615.136)
Stacktrace:
Backtrace:
    GetHandleVerifier [0x003FDCE3+50899]
    (No symbol) [0x0038E111]
    (No symbol) [0x00295588]
    (No symbol) [0x002C08F9]
    (No symbol) [0x002C0AFB]
    (No symbol) [0x002EF902]
    (No symbol) [0x002DB944]
    (No symbol) [0x002EE01C]
    (No symbol) [0x002DB6F6]
    (No symbol) [0x002B7708]
    (No symbol) [0x002B886D]
    GetHandleVerifier [0x00663EAE+2566302]
    GetHandleVerifier [0x006992B1+2784417]
    GetHandleVerifier [0x0069327C+2759788]
    GetHandleVerifier [0x00495740+672048]
    (No symbol) [0x00398872]
    (No symbol) [0x003941C8]
    (No symbol) [0x003942AB]
    (No symbol) [0x003871B7]
    BaseThreadInitThunk [0x75AF0099+25]
    RtlGetAppContainerNamedObjectPath [0x77567B6E+286]
    RtlGetAppContainerNamedObjectPath [0x77567B3E+238]

起初我遇到了 chromedriver 错误,我更正了它,我检查了定位器以防万一,我尝试了两种技术来改变上下文,我什至尝试在本机应用程序上下文中执行它,仍然没有运气。

python appium hybrid-mobile-app
© www.soinside.com 2019 - 2024. All rights reserved.