在……中找不到“adb.exe”?

Gau*_*tez 1 adb python-3.x appium

如何修复找不到“adb.exe”?

\n\n

我认为我的问题是 Android 世界中被问得最多和回答最多的问题之一。我阅读并尝试了所有这些。

\n\n
    \n
  • 我检查并更新了我的环境变量。
  • \n
  • 我卸载并重新安装了 Android Studio
  • \n
  • 我将粘贴的 adb 复制到所有可能的文件夹中:\n C:\\Users\\Nino\\AppData\\Local\\Android\\Sdk \n C:\\Program Files\\Android\n C:\\Program Files \\Android\\tools\n C:\\Program Files\\Android\\platform-tools
  • \n
\n\n

事实上,我花了一整天的时间来搜索、阅读和测试所有可能的解决方案。

\n\n

并没有解决我的问题。所以我真的需要你的帮助。

\n\n

我是新手,我想分享我的经验。这是我的代码:

\n\n
from appium import webdriver\nimport unittest\n\nfrom selenium.webdriver.common.by import By\n\n\nclass Instagram(unittest.TestCase):\n    def setUp(self):\n        desired_caps = {}\n        desired_caps[\'platformName\']=\'Android\'\n        desired_caps[\'platformVersion\']=\'6.0\'\n        desired_caps[\'deviceName\']=\'S6S5IN3G\'\n        desired_caps[\'noReset\']=\'true\'\n        desired_caps[\'appPackage\']=\'com.instagram\'\n        desired_caps[\'appActivity\']=\'com.instagram.android.activity.MainTabActivity\'\n\n        self.driver = webdriver.Remote(\'http://localhost:4723/wd/hub\',desired_caps)\n        #self.driver = webdriver.Remote(\'http://0.0.0.0:4723/wd/hub\',desired_caps)\n\n    def tearDown(self):\n        self.driver.quit()\n\n    def test_scrap_email(self):\n        search_button = self.driver.findElement(By.xpath ("//android.widget.ImageView[@bounds=\'[126,800][162,836]\']"))\n        search_button.click()\n\n\n\nif __name__ == \'__main__\':\n    suite = unittest.Testloader().loadTestsFromTestCase(Instagram)\n    unittest.TextTestRunner(verbosity=1).run(suite)\n
Run Code Online (Sandbox Code Playgroud)\n\n

这是错误:

\n\n
\n

测试于 01:00 开始 ...\n C:\\Users\\Nino\\PycharmProjects\\Instagram\\venv\\Scripts\\python.exe\n "C:\\Program Files\\JetBrains\\ PyCharm Community Edition\n 2019.1.3\\helpers\\pycharm_jb_unittest_runner.py" --target mybot_instagram.Instagram.test_scrap_email 使用\n 参数启动单元测试 python -m unittest\n mybot_instagram.Instagram.test_scrap_email in\n C:\\Users \\Nino\\PycharmProjects\\Instagram

\n\n

错误回溯(最近一次调用):File\n "C:\\Users\\Nino\\AppData\\Local\\Programs\\Python\\Python37\\lib\\unittest\\case.py",\ n 第 59 行,在 testPartExecutor\n 中生成 File "C:\\Users\\Nino\\AppData\\Local\\Programs\\Python\\Python37\\lib\\unittest\\case.py",\n 行624,在 run\n self.setUp() 文件“C:\\Users\\Nino\\PycharmProjects\\Instagram\\mybot_instagram.py”,第 17 行,\n 在 setUp\n self.driver = webdriver.Remote (\' http://localhost:4723/wd/hub \',desired_caps) File\n "C:\\Users\\Nino\\PycharmProjects\\Instagram\\venv\\lib\\site-packages\\ appium\\webdriver\\webdriver.py",\n 第 144 行,在init \n 代理文件“C:\\Users\\Nino\\PycharmProjects\\Instagram\\venv\\lib\\site-packages\\ selenium\\webdriver\\remote\\webdriver.py",\n 第 157 行,在init \n self.start_session(功能, browser_profile) 文件 "C:\\Users\\Nino\\PycharmProjects\\Instagram\\venv \\lib\\site-packages\\appium\\webdriver\\webdriver.py",\n 第 219 行,在 start_session\n 响应 = self.execute(RemoteCommand.NEW_SESSION, 参数) 文件\n "C:\\ Users\\Nino\\PycharmProjects\\Instagram\\venv\\lib\\site-packages\\selenium\\webdriver\\remote\\webdriver.py",\n 第 321 行,在执行\n self.error_handler 中。 check_response(response) 文件 "C:\\Users\\Nino\\PycharmProjects\\Instagram\\venv\\lib\\site-packages\\selenium\\webdriver\\remote\\errorhandler.py",\n 行242,在 check_response\n 中引发异常类(消息、屏幕、堆栈跟踪)selenium.common.exceptions.WebDriverException:消息:处理命令时发生未知\n 服务器端错误。原始错误:无法在 ["C:\\Program\n Files\\Android\\platform-tools\\platform-tools\\adb.exe","C:\ \Program\n Files\\Android\\platform-tools\\emulator\\adb.exe","C:\\Program\n Files\\Android\\platform-tools\\tools\\adb.exe", “C:\\Program\n Files\\Android\\platform-tools\\tools\\bin\\adb.exe”]。您是否已在 \'C:\\Program\n Files\\Android\\platform-tools\' 安装\n Android Build Tools?

\n\n

断言失败\n C:\\Users\\Nino\\AppData\\Local\\Programs\\Python\\Python37\\lib\\unittest\\case.py:656:\n ResourceWarning: 未关闭
\n 结果。 error.clear() ResourceWarning: 启用tracemalloc 以获取对象分配回溯

\n\n

在 2.139 秒内完成 1 次测试

\n\n

失败(错误=1)

\n\n

进程已完成,退出代码为 1

\n\n

断言失败

\n\n

断言失败

\n
\n\n

我正在使用pycharm。当我运行代码时,我看到一些错误日志,但是当我从 cmd 运行它时,什么也没有。

\n\n

在此输入图像描述

\n\n

这里是 Appium 日志的主要部分:

\n\n
>     Android >= 6, since UIAutomator1 framework is not maintained anymore by the OS vendor.\n>         [Appium] Appium v1.13.0 creating new AndroidDriver (v4.15.1) session\n>         [Appium] Capabilities:\n>         [Appium]   platformName: Android\n>         [Appium]   platformVersion: 6.0\n>         [Appium]   deviceName: S6S5IN3G\n>         [Appium]   noReset: true\n>         [Appium]   appPackage: com.instagram\n>         [Appium]   appActivity: com.instagram.android.activity.MainTabActivity\n>         [BaseDriver] W3C capabilities {"alwaysMatch":{"platformNa... and MJSONWP desired capabilities {"platformName":"Android","... were\n> provided\n>         [BaseDriver] Creating session with W3C capabilities: {"alwaysMatch":{"platformNa...\n>         [BaseDriver] Capability \'noReset\' changed from string to boolean. This may cause unexpected behavior\n>         [BaseDriver] Session created with session id: 786ec1a0-280c-4573-a917-18df120f0629\n>         [AndroidDriver] Shutting down Android driver\n>         [AndroidDriver] Called deleteSession but bootstrap wasn\'t active\n>         [BaseDriver] Event \'newSessionStarted\' logged at 1566428435932 (01:00:35 GMT+0200 (Paris, Madrid (heure d\xe2\x80\x99\xc3\xa9t\xc3\xa9)))\n>         [W3C] Encountered internal error running command: Error: Could not find \'adb.exe\' in ["C:\\\\Program\n> Files\\\\Android\\\\platform-tools\\\\platform-tools\\\\adb.exe","C:\\\\Program\n> Files\\\\Android\\\\platform-tools\\\\emulator\\\\adb.exe","C:\\\\Program\n> Files\\\\Android\\\\platform-tools\\\\tools\\\\adb.exe","C:\\\\Program\n> Files\\\\Android\\\\platform-tools\\\\tools\\\\bin\\\\adb.exe"]. Do you have\n> Android Build Tools installed at \'C:\\Program\n> Files\\Android\\platform-tools\'?\n>         [W3C]     at ADB. (C:\\Users\\Nino\\AppData\\Local\\Programs\\Appium\\resources\\app\\node_modules\\appium\\node_modules\\appium-adb\\lib\\tools\\system-calls.js:106:11)\n>         [W3C]     at Generator.next ()\n>         [W3C]     at asyncGeneratorStep (C:\\Users\\Nino\\AppData\\Local\\Programs\\Appium\\resources\\app\\node_modules\\appium\\node_modules\\@babel\\runtime\\helpers\\asyncToGenerator.js:3:24)\n>         [W3C]     at _next (C:\\Users\\Nino\\AppData\\Local\\Programs\\Appium\\resources\\app\\node_modules\\appium\\node_modules\\@babel\\runtime\\helpers\\asyncToGenerator.js:25:9)\n>         [W3C]     at run (C:\\Users\\Nino\\AppData\\Local\\Programs\\Appium\\resources\\app\\node_modules\\appium\\node_modules\\core-js\\modules\\es6.promise.js:75:22)\n>         [W3C]     at C:\\Users\\Nino\\AppData\\Local\\Programs\\Appium\\resources\\app\\node_modules\\appium\\node_modules\\core-js\\modules\\es6.promise.js:92:30\n>         [W3C]     at flush (C:\\Users\\Nino\\AppData\\Local\\Programs\\Appium\\resources\\app\\node_modules\\appium\\node_modules\\core-js\\modules\\_microtask.js:18:9)\n>         [W3C]     at process._tickCallback (internal/process/next_tick.js:61:11)\n>         [HTTP] <-- POST /wd/hub/session 500 49 ms - 1544\n>         [HTTP]\n
Run Code Online (Sandbox Code Playgroud)\n\n

有人可以建议我一些解决方案吗?

\n\n

谢谢。

\n

Dmi*_*i T 5

adb.exe您的操作系统路径中需要有

我建议进行以下设置:

  1. 创建ANDROID_HOME指向您的 Android SDK 安装的环境变量
  2. 创建JAVA_HOME指向您的 JDK 安装的环境变量
  3. 创建PATH环境变量,例如:

    %ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools;%JAVA_HOME%\bin
    
    Run Code Online (Sandbox Code Playgroud)

    在此输入图像描述

  4. 这应该足以成功启动您的 Python Appium 测试

您始终可以使用appium-doctor工具来检查 Appium 先决条件安装的完整性。

更多信息: