如何在 Appium 中使用 javascript 单击 Xamarin 元素?

Posted

技术标签:

【中文标题】如何在 Appium 中使用 javascript 单击 Xamarin 元素?【英文标题】:How to click a Xamarin element with javascript in Appium? 【发布时间】:2021-09-01 14:48:37 【问题描述】:

我觉得我有点发疯了。

如何使用 Appium 在 javascript 中单击可访问性元素?我创建了一个 Xamarin 应用程序。我在主页上放置了一个带有 AutomationID == "ClickHere !!!" 的按钮。我想点击这个按钮。

这里是完整的appium代码:

const wdio = require("webdriverio");

const opts = 
    path: '/wd/hub',
    port: 4723,
    capabilities: 
      platformName: "android",
      platformVersion: "9",
      deviceName: "<device name>",
      app: "<path to apk>",
      appPackage: "<packagename>",
      appActivity: "<MainActivity from Xamarin>",
      automationName: "UiAutomator2"
    
  ;
  
  async function main () 
    const client = await wdio.remote(opts);
    
    //Click the button somehow

    await client.deleteSession();
  
  
  main();

当我尝试使用 Appium 查找元素时,我会收到 NoSuchElementException 或“单击不是函数”错误。 我能够启动应用并运行测试,但我无法点击元素/按钮

我是 Appium 的菜鸟,因此我们将不胜感激。

【问题讨论】:

【参考方案1】:

在 webdriverio 或大多数基于 javascript 的系统中,所有操作的输出都是 promises 。所以你必须使用等待

  async function main () 
    const client = await wdio.remote(opts);

    let element = await $("locator")
    await element.click()

    //you can also use it as :
    
    await (await $("locator")).click()
    //Click the button somehow

    await client.deleteSession();
  

【讨论】:

以上是关于如何在 Appium 中使用 javascript 单击 Xamarin 元素?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Appium Xcode Instruments 执行单个命令

使用 Appium 测试 NativeScript 应用程序

在移动原生应用程序测试中:使用 Appium 时如何模拟后端?

如何在 Python 中使用 appium 进行滚动

如何在 Java 中使用 nodeJs 停止 Appium 服务器

如何将 Appium 与 C# 集成?