Python appium webdriver.“NoneType”对象的远程错误没有属性“to_capability”

问题描述 投票:0回答:1

设置 Appium Inspector 后,我可以从 Inspector 访问我的 BlueStack 设备

{ “平台名称”:“Android”, “appium:设备名称”:“本地主机:5555”, "appium:平台版本": "7", "appium:ensureWebviewsHavePages": "true", "appium:automationName": "UiAutomator2" }

但是从 python 脚本访问设备会给我带来错误

“NoneType”对象没有属性“to_capability”

capabilities = dict(
    platformName='Android',
    automationName='uiautomator2',
    platformVersion='7',
    deviceName='localhost:5555',
    # appPackage='com.android.settings',
    # appActivity='.Settings',
    # language='en',
    # locale='US'
)

appium_server_url = 'http://localhost:4723'

class TestAppium(unittest.TestCase):
    def setUp(self) -> None:
        self.driver = webdriver.Remote(appium_server_url, capabilities)

    def tearDown(self) -> None:
        if self.driver:
            self.driver.quit()

    def test_find_battery(self) -> None:
        el = self.driver.find_element(by=AppiumBy.XPATH, value='//*[@text="Battery"]')
        el.click()

if __name__ == '__main__':
    unittest.main()

我可以做什么来解决这个问题? 谢谢楼上各位的回复

fyi:设备名称 - adb 设备-l 附加设备列表 emulator-5554 设备产品:OnePlus5 型号:ONEPLUS_A5000 设备:OnePlus5 Transport_id:1 本地主机:5555 设备产品:OnePlus5 型号:ONEPLUS_A5000 设备:OnePlus5 Transport_id:3

向检查员尝试,按照文档进行操作,但失败了

python appium bluestacks
1个回答
0
投票

看来新版本的appium版本改变了函数签名

试试这个:

from appium.options.android import UiAutomator2Options

class TestAppium(unittest.TestCase):
    def setUp(self) -> None:
        options = UiAutomator2Options()
        options.load_capabilities(capabilities)
        self.driver = webdriver.Remote(appium_server_url, options=options)
© www.soinside.com 2019 - 2024. All rights reserved.