Appium:无法在连接的多个 Android 设备中运行脚本

2023-11-30

创建了多个 appium 实例。 从控制台我运行:

node . -p 4722 -U Z*****K --chromedriver-port 9
515 -bp 2251

node . -p 4723 -U T*****K --chromedriver-port 9
516 -bp 2252

实例会在两个设备上创建,但 URL 仅在连接的第二个设备上打开。第一个设备中的浏览器仅保持打开状态,而不会打开 URL。

Code :

规格流文件:

测试特征

  Scenario: Check Home Page
        Given I am on home page
        Then My title should be 'whatever'

Steps.cs

 [Given(@"I am on home page")]
            public void GivenIAmOnHofHomePage()
            {
                var testappium = new TestAppium();
                testappium.SetUp();
                testappium.OpenHomePage();
            }

TestAppium.cs

using System;
using OpenQA.Selenium;
using OpenQA.Selenium.Appium;
using OpenQA.Selenium.Appium.Interfaces;
using OpenQA.Selenium.Appium.MultiTouch;
using OpenQA.Selenium.Interactions;
using OpenQA.Selenium.Remote;
using OpenQA.Selenium.Appium.Android;
using OpenQA.Selenium.Appium.iOS;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using TechTalk.SpecFlow;


namespace Mobile.Tests.UIAutomation
{

    public class TestAppium
    {
        public static IWebDriver driver=null;

        public void SetUp()
        {
            DesiredCapabilities capabilities = new DesiredCapabilities();

            capabilities.SetCapability("device", "Android");
            capabilities.SetCapability("browserName", "chrome");
            capabilities.SetCapability("deviceName", "test");
            capabilities.SetCapability("platformName", "Android");
            capabilities.SetCapability("platformVersion", "5.0.1");
            capabilities.SetCapability("udid", EnvironmentVariables.nexus);

            driver = new RemoteWebDriver(new Uri("http://127.0.0.1:4722/wd/hub"), capabilities, TimeSpan.FromSeconds(180));

            DesiredCapabilities capabilitiess = new DesiredCapabilities();

            capabilitiess.SetCapability("device", "Android");
            capabilitiess.SetCapability("browserName", "chrome");
            capabilitiess.SetCapability("deviceName", "Arpan Buch");
            capabilitiess.SetCapability("platformName", "Android");
            capabilitiess.SetCapability("platformVersion", "5.0.2");
            capabilitiess.SetCapability("udid", EnvironmentVariables.motog);

            driver = new RemoteWebDriver(new  Uri("http://127.0.0.1:4723/wd/hub"), capabilitiess, TimeSpan.FromSeconds(180));
       }

       public void OpenHomePage()
        {
            driver.Navigate().GoToUrl("http://www.google.com");

            Console.WriteLine("Page title is : " +driver.Title);
            Assert.IsTrue(driver.Title.Equals("Google")," Sorry , the website didnt open!!");
        }
     }
  }

实例会在两个设备上创建,但 URL 仅在连接的第二个设备上打开。第一个设备中的浏览器保持打开状态,而不会打开 URL。

第一个设备的驱动程序实例是否被覆盖(?)。这是我作为测试人员而不是开发人员的编程限制。请帮忙! 提前致谢!


Appium 遇到了一个问题,因为从一开始就没有支持多种 Android 设备的功能。

Appium 团队从这个问题。好长的线:) 贡献者合并this fix在代码中解决这个问题并实现这样的功能。

该怎么办

该线程有点混乱,但包含很多材料。就我个人而言,我决定在这种情况下不使用 Appium,因为目前它不太可靠。但我认为,在你的能力范围内,你应该指定:

capabilitiess.SetCapability("udid", "<UDID>");
capabilitiess.SetCapability("devicePort", "<ADB-port-listening-to-device>");

最后一个能力是关键!该线程解释了很多内容,但基本上您应该将 ADB 用于侦听设备的端口号放在那里。如果您连接两个 Android 设备,您将获得两个不同的端口。

更多 Appium 实例

您可能想尝试运行两个 Appium 服务器,就像我之前链接的同一线程中所解释的那样。

appium -p 4725 -bp 4727 -U 02*************** --chromedriver-port 9515
appium -p 4724 -bp 4726 -U 07a************** --chromedriver-port 9516

考虑以下因素:

node . -p <appium_port> -bp <device_port> -U <serial> -g <logfile>

当然,您的测试应该引用在同一台计算机上但在两个不同端口上运行的这两个不同的 Appium 实例。在你的例子中记得指定Chromedriver 的不同端口!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Appium:无法在连接的多个 Android 设备中运行脚本 的相关文章

随机推荐

  • IsDate 函数返回意外结果

    怎么会IsDate 13 50 回报True but IsDate 12 25 2010 回报False 我最近被这个小 功能 绊倒了 想提高人们对围绕该功能的一些问题的认识 IsDateVB 和 VBA 中的函数 简单的案例 正如你所期望
  • 从具有级别的列表构造一棵树

    我有一些数据 Pythonlist of dicts 看起来像 value A level 0 value B level 1 value C level 2 value D level 1 value E level 2 value F
  • Apache Poi:从 HSSF 转换为 SS?

    除了我制作工作簿的部分之外 我已将 HSSF 中的所有旧代码转换为 SS 旧代码 HSSFWorkbook wb new HSSFWorkbook new FileInputStream 文件 新的非工作代码 工作簿 wb2 新工作簿 新F
  • Django, sorl-缩略图裁剪图片头像

    伙计们 我想知道 sorl thumbnail 是否有任何选项可以从下到上裁剪 我有一个垃圾问题 在某些图片中 sorl thumbnail 正在裁剪图片中人物的头部 Thanks 我刚刚发布了新版本的 sorl thumbnail 3 2
  • Java中如何检查字符串中是否包含日期?

    如何检查字符串是否包含以下形式的日期 美国东部时间 2012 年 1 月 15 日星期日晚上 7 36 我正在处理的数据包含大量字符串 但我正在寻找的字符串类型包含 2 或 3 个单词的名称和日期 我正在检查日期来识别这些类型的字符串 我已
  • 使用 Pandas 修改 Excel 文件,布局变化最小

    我已经读过Pandas 可以读取和修改单个 Excel 文件工作表 选项卡 而不修改文件的其余部分吗 但在这里我的问题是针对下文提到的布局的 如何使用 Pandas 打开 Excel 文件 进行一些修改 然后将其保存回来 1 不删除有一个F
  • PhoneGap - 使 Android 功能成为可选

    我希望为我的 Android 应用程序设置一些不需要的设置 以便 Google 的 Play 商店会识别它对平板电脑也有用 我需要将这两行添加到我的 AndroidManifest xml 中
  • QGraphicsView 使用鼠标滚轮在鼠标位置下放大和缩小

    我有一个应用程序QGraphicsView窗口位于屏幕中间 我希望能够使用鼠标滚轮滚动来放大和缩小 目前我已经重新实现了QGraphicsView并覆盖鼠标滚动功能 以便它不会滚动图像 就像默认情况下一样 void MyQGraphicsV
  • 如何通过相应的 WCF 绑定使用 MSMQ over http?

    我们通过 MSMQ 在代理和服务器之间建立了单向连接 我正在尝试通过 http 将其移动到 MSMQ 现在 MSMQ 与服务器端的 IIS 集成 我确保在安装 MSMQ 时检查相应的选项 但我很困惑下一步该做什么 我的意思是 端点地址没有表
  • Freemarker 迭代 hashmap 键

    Freemarker 有两种集合数据类型 列表和哈希图 有没有一种方法可以像我们处理列表一样迭代哈希图键 因此 如果我有一个带有数据的变量 可以这样说 user name user email email protected homepag
  • 在编译时更改字符串宏

    我正在开发一个必须在不同机器上工作的独特客户端 在每台机器中 服务器都在不同的 IP 地址中运行 但该地址是已知的 我不想每次运行时都告诉客户端哪个是IP 所以我想在编译时告诉它 问题是当编译时g DHOSTNAME 127 0 0 1 也
  • 循环中的 Cout 不按定义逐个打印字符

    我最近在大学开始学习 C 并决定在家进一步学习 我的想法是制作一个程序 给定一段文本 它会逐个字符地打印出这样的文本 中间有一个小的延迟 如本视频所示 超热聊天 我尝试使用一个简单的过程重新创建它 void typer string tex
  • 错误:函数预部署错误:命令以非零退出代码终止254

    我正在使用Mac 我尝试从该线程中阅读并实现解决方案 但它不起作用 以非零退出代码开始的 Firebase 部署错误 项目路径中的空格 将代码部署到 firebase 时出现错误 我正在部署功能运行命令 npm prefix RESOURC
  • RxJS - 如何在不使用间隔的情况下增量增加延迟时间?

    我想逐步增加延迟 const source from 839283 1123123 63527 4412454 note this is random const spread source pipe concatMap value gt
  • UIImageView 在自定义 UICollectionViewCell 中返回 nil

    上周我问了一个类似的问题 但我想我已经将问题范围缩小到更具体地出了什么问题 正在加载自定义单元格 并且当我使用时看起来可以正确调用collectionView dequeReusableCellWithIdentifier MenuCell
  • 如何让 git 理解 Mac (CR) 行结尾

    由于某些原因 我的一个文件包含旧式 Mac 行结尾 在 OSX 上编辑后 这些是 CR 回车 字符 在中显示为 Mgit diff Git 不理解它们是行结束代码 真的有多难 并将整个文件解释为一行 我知道我可以将文件转换为 LF 或 CR
  • 即使设备已准备好, navigator.connection.type 也无法工作*或*设备从未准备好

    我正在尝试使用 Phonegap 制作一个简单的应用程序 并使用 Adob e Phonegap builder 进行编译 我找到并使用了下面详细记录的使用 navigator connection type 的示例 并在其中添加了另一行
  • 触摸设备上的悬停事件

    我降低了不透明度 ul 当鼠标悬停在 ul 标记区域 然后设置完全不透明度 li 哪个用户在上面 像这个样本 在没有 jQuery 的情况下悬停时图像更改不透明度 现在 问题出在平板电脑和手机上 因为在触摸设备上我们没有悬停事件 用户应该单
  • 将具有不同日期格式的 CSV 导入 MySQL

    我正在将 CSV 第一次导入 MySQL 并注意到 CSV 中的日期具有以下格式31 Jan 2011 我怎样才能将其转换为2011 01 31所以我可以将它放在 DATE 数据类型中吗 我想到的第一件事是让 PHP 进行转换 然后将其插入
  • Appium:无法在连接的多个 Android 设备中运行脚本

    创建了多个 appium 实例 从控制台我运行 node p 4722 U Z K chromedriver port 9 515 bp 2251 node p 4723 U T K chromedriver port 9 516 bp 2