标签: appium-android

处理命令时发生未知的服务器端错误。无法将命令代理到远程服务器。原始错误:错误:套接字挂起

如果我运行 TestNG 测试类,它会显示错误 ------------

org.openqa.selenium.WebDriverException: An unknown server-side error occurred while processing the command. 
Original error: Could not proxy command to remote server. Original error: Error: socket hang up (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 281 milliseconds
Build info: version: '2.53.1', revision: 'a36b8b1cd5757287168e54b817830adce9b0158d', time: '2016-06-30 19:26:09'
System info: host: 'MON-PC305', ip: '10.101.0.119', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_144'
Driver info: io.appium.java_client.android.AndroidDriver
Capabilities [{appPackage=com.app.android.game.app, statBarHeight=84, noReset=false, viewportRect={top=84, left=0, width=1440, height=2308}, deviceName=emulator-5554, …
Run Code Online (Sandbox Code Playgroud)

android exception driver appium-android

6
推荐指数
2
解决办法
5万
查看次数

阿皮乌姆问题。如果出现“listen eaddrinuse:地址已在使用中”,如何阻止它?为什么它没有停止?

我已经使用默认的 0.0.0.0:4723 地址和端口启动了 Appium,但随后出现了以下错误:

C:\User\me>appium
[Appium] Welcome to Appium v1.17.0
[HTTP] Could not start REST http interface listener. The requested port may already be in use. Please make sure there is no other instance of this server running already.
Fatal Error: listen EADDRINUSE: address already in use 0.0.0.0:4723
    at Server.setupListenHandle [as _listen2] (net.js:1309:16)
    at listenInCluster (net.js:1357:12)
    at doListen (net.js:1496:7)
    at processTicksAndRejections (internal/process/task_queues.js:85:21)
Run Code Online (Sandbox Code Playgroud)

我发现我可以使用以下命令更改端口: appium -p 4724

我还发现我可以关闭与 0.0.0.0:4723(如果有)的连接,无论是在 Appium 桌面应用程序还是第二个 CMD 上。我关闭了 Appium 桌面应用程序,我停止并关闭了任何其他 CMD,但我仍然遇到相同的致命错误:listen EADDRINUSE:地址已在使用中 0.0.0.0:4723

然后我的问题是:如何停止这个已经使用的地址?以及,为什么它没有停止?

我可以使用另一个端口来启动我的服务器,但是我不应该能够简单地停止与 …

java appium appium-android

6
推荐指数
1
解决办法
1万
查看次数

Appium - 在 PageFactory 获取 java.lang.RuntimeException:java.lang.NoSuchMethodException:jdk.proxy2.$Proxy9.proxyClassLookup()

我在运行 Appium 测试时遇到此异常。PageFactory 上的测试失败,但出现以下异常。

\n
My POM:\n<?xml version="1.0" encoding="UTF-8"?>\n<project xmlns="http://maven.apache.org/POM/4.0.0`\n         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\n         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">\n    <modelVersion>4.0.0</modelVersion>\n\n    <groupId>com.telepathy.test</groupId>\n    <artifactId>twitter</artifactId>\n    <version>1.0-SNAPSHOT</version>\n    <dependencies>\n        <dependency>\n            <groupId>junit</groupId>\n            <artifactId>junit</artifactId>\n            <version>4.12</version>\n        </dependency>\n        <!-- https://mvnrepository.com/artifact/io.appium/java-client -->\n        <dependency>\n            <groupId>io.appium</groupId>\n            <artifactId>java-client</artifactId>\n            <version>7.2.0</version>\n        </dependency>\n    </dependencies>\n\n</project>\n\n
Run Code Online (Sandbox Code Playgroud)\n
    \n
  • 直到昨天,这一切都工作正常,我的机器重新启动,这个错误开始出现。
  • \n
  • 已经尝试过最新版本的 Appium (7.5.1)
  • \n
  • mvn清理刷新了吗,更新
  • \n
\n

此处失败:\nPageFactory.initElements(new AppiumFieldDecorator(this.driver), this);

\n
java.lang.RuntimeException: java.lang.NoSuchMethodException: \n    jdk.proxy2.$Proxy9.proxyClassLookup()\n    at  \xe2\x80\x8bio.appium.java_client.pagefactory.bys.builder.AppiumByBuilder.prepareAnnotationMethods(\nApiumByBuilder.java:84)\n
Run Code Online (Sandbox Code Playgroud)\n

automation pom.xml appium page-factory appium-android

6
推荐指数
1
解决办法
1万
查看次数

java.lang.NoSuchMethodError: 'void org.openqa.selenium.remote.http.ClientConfig.&lt;init&gt;(java.net.URI, java.time.Duration, java.time.Duratio

当我尝试在相关设备中启动该应用程序时,我收到以下错误消息,如果有人遇到并已解决,请提供帮助。

java.lang.NoSuchMethodError: 'void org.openqa.selenium.remote.http.ClientConfig.(java.net.URI, java.time.Duration, java.time.Duration, org.openqa.selenium.remote.http.Filter ,java.net.Proxy,org.openqa.selenium.Credentials)'

appium-android

6
推荐指数
2
解决办法
5712
查看次数

如何加快appium的启动速度

我正在尝试使用 appium 来测试一个真实手机上的应用程序。启动将花费 25 秒。如何加快速度?

appium桌面版本:1.5
Android操作系统:7.1

这是 adb 日志

from appium import webdriver

class AppTester(object):
    """docstring for AppTester"""
    def __init__(self, command_executor, desired_capabilities):
        super(AppTester, self).__init__()
        self.driver = webdriver.Remote(command_executor, desired_capabilities)

    def click_ui_element(self, ui_selector):
        self.driver.find_element_by_android_uiautomator(ui_selector).click()

import time
from app_tester.tester import *

app_caps = {
    'platformName': 'Android',
    'deviceName': 'Android Emulator',
    'platformVersion': '7.1',
    'appPackage': 'com.freescale.kinetisbletoolbox',
    'appActivity': 'com.freescale.bletoolbox.activity.CheckActivity',
    'autoGrantPermissions': True,
    # 'locationServicesAuthorized': True,
    'autoAcceptAlerts': True,
    # 'gpsEnabled': True,
    'noReset': True,
    'fullReset': False,
}

app_url = 'http://localhost:4723/wd/hub'

secs = time.time()
app = AppTester(app_url, app_caps)
print 'start …
Run Code Online (Sandbox Code Playgroud)

android appium python-appium appium-android appium-desktop

5
推荐指数
1
解决办法
2277
查看次数

Appium Java客户端版本与Selenium版本

谁能告诉我如何确保哪个appium java-clientjar版本与哪个硒jar版本兼容。我尝试了许多不同的appium java-client版本和硒版本,并且遇到了以下问题:-

  1. org.openqa.selenium.remote.RemoteWebElement cannot be cast to io.appium.java_client.android.AndroidElement with java-client 4.1.2 ans selenium 3.9.1
  2. java.lang.NullPointerException with java-client 4.1.0 ans selenium 3.9.1
  3. java.lang.NoSuchMethodError with java-client 6.0.0 ans selenium 3.13.0
  4. java.lang.NoClassDefFoundError with java-client 6.0.0 ans selenium 3.9.1

清单很长。

我尝试了很多事情,最后它Java-client 2.1.0selenium version 2.45.0

这些是旧版本,我想使用较新的版本。有没有办法找出哪个java-client版本与哪个selenium版本完美配合?

是否有任何链接提供列表或其他内容,而不是尝试所有排列组合?

java selenium selenium-webdriver appium appium-android

5
推荐指数
1
解决办法
4271
查看次数

Appium 6.1.0 TouchActions 与 TouchAction

我正在寻找使用最新(此时)Appium Java 客户端 6.1.0 创建 Tap/Swipe/Drag 等事件的“正确”或“最新”方式。我看到了不同的单证在Appium网站(点击使用TouchActions触摸使用TouchAction),并没有引用作为我应该使用(和将要过时?)。

new TouchAction(driver)
    .tap(tapOptions()
    .withElement(element(myElement)))
    .perform();

new TouchActions(driver)
    .singleTap(myElement)
    .perform();
Run Code Online (Sandbox Code Playgroud)

看起来TouchActions是Selenium项目的一部分,TouchAction是Appium的一部分,但这并不代表Appium就是正确的方式。

ps 我目前正在使用 Chrome/Safari 浏览器进行 Android/iOS 测试,但这并不意味着我不需要对代码的本机应用程序支持。

感谢您的时间

appium appium-ios appium-android

5
推荐指数
1
解决办法
4795
查看次数

如何使用 javascript 通过 appium 打开/关闭辅助功能

我有这个用于 android 的 adb shell 命令并尝试使用终端,它运行良好。

但不确定如何使用 appium 命令在框架中使用它。

// disable
adb shell settings put secure enabled_accessibility_services com.android.talkback/com.google.android.marvin.talkback.TalkBackService

// enable
adb shell settings put secure enabled_accessibility_services com.google.android.marvin.talkback/com.google.android.marvin.talkback.TalkBackService
Run Code Online (Sandbox Code Playgroud)

javascript accessibility talkback appium appium-android

5
推荐指数
1
解决办法
973
查看次数

Appium:如何在java中使用自动化测试用例检查设备名称

我正在为一个应用程序实现自动化测试用例。我想概括一些测试用例,以便根据某些条件在每个设备上运行。因此,为了做到这一点,我必须使用一些代码获取设备名称。我无法获得用于检查设备名称的代码。任何帮助是最受欢迎的!!!

java android intellij-idea appium appium-android

5
推荐指数
1
解决办法
1741
查看次数

如何将 appium 连接到 android 上现有的正在运行的应用程序

我正在编写一个跨平台自动化,我有一个 selenium 桌面驱动程序,我执行一些操作,在设备上启动我的服务,并在 android 设备上启动警报,我想接受警报,然后同时使用网络驱动程序和移动驱动程序执行某些功能。

Web 驱动程序工作正常,它在 Web 浏览器上执行所需的操作并在设备端创建警报。

因此,我的应用程序/服务已经在设备上启动,现在当我尝试设置 appium 功能时:

DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("platform", "ANDROID");
capabilities.setCapability("version", "4.4");
capabilities.setCapability("automationName", "uiautomator2");
capabilities.setCapability("deviceName", "karnak");
capabilities.setCapability("platformVersion", "7.1");
capabilities.setCapability("noReset", "true");
capabilities.setCapability("autoGrantPermissions", "true");
capabilities.setCapability("appPackage", "xyz");
capabilities.setCapability("appActivity", ".abc");
capabilities.setCapability("optionalIntentArguments", payload);
Run Code Online (Sandbox Code Playgroud)

发生的情况是 appium 将终止我拥有的现有会话,并将安装应用程序并尝试使用提供的有效负载启动活动,该有效负载现在无效。

因此,有一种方法可以为设备上现有的正在运行的应用程序/服务创建移动驱动程序,而无需安装应用程序并重新启动它。

我发现您必须执行 noReset 但这似乎对我不起作用。我尝试提供 appWaitPackage 和 appWaitActivity 而不是 appPackage 和 appActivity ,但也没有用。

如果你们中有人知道我如何将移动驱动程序附加到现有的运行应用程序/服务,请告诉我。

java selenium-webdriver appium appium-android

5
推荐指数
1
解决办法
686
查看次数