当前位置: 首页 > 知识库问答 >
问题:

我在android emulator中使用Appium Eclipse TestNG框架点击或点击一个项目时遇到问题

陶和歌
2023-03-14

对Appium来说是新手,非常感谢您的帮助

我的代码

public void testmethod() {
    List<MobileElement> buttonlist = driver.findElements(By.xpath("//android.app.Dialog//android.view.View//android.widget.Button"));
    buttonlist.forEach(webElement -> log.info(webElement.getAttribute("name")));
    for (MobileElement button : buttonlist) {
        System.out.println(".................button name=>" + button.getAttribute("name") + "<");
        if ("Send Email ".equals(button.getAttribute("name"))) {
            driver.manage().timeouts().implicitlyWait(2, TimeUnit.SECONDS);
            button.click();
            break;
        }
    }

}

C#for循环打印列表中的所有项目,而使用java它只打印一个。我做错了什么吗?我看到它很快点击android屏幕顶部,并在没有点击实际元素的情况下关闭。

共有2个答案

晋越彬
2023-03-14

我在你的代码中看到的问题很少。

首先,不需要在for循环中调用隐式等待。初始化驱动程序后立即使用一次,超过1分钟或更长时间。

第二,你在if条件中增加了额外的空间,它应该是,

if ("Send Email".contains (button.getAttribute("name"))) {
  button.click();
  break;
}

第三,这更像是一个建议。使用AndroidTouchActionclassestap方法,而不是单击

AndroidTouchAction touch = new AndroidTouchAction (driver);
touch.tap (TapOptions.tapOptions ()
  .withElement (ElementOption.element (e)))
  .perform ();
寿浩言
2023-03-14

您必须使用唯一的元素ID来访问按钮。您可以使用id、resource-id、可访问性id和xpath来访问元素。

不建议使用XPath

如果你的应用程序元素中没有唯一的id,你可以让开发者把它放在他们的代码中。

可以使用Appium Desktop Inspector检查元素。了解确切的元素后,可以按如下方式单击按钮:

MobileElement button= driver.findElementByAccessibilityId("your element's accessibility id");
button.click();
//or
MobileElement button= driver.findElementById("your element's id or resource id");
button.click();

您可以从appium桌面检查器获取或id,资源id或可访问性id

如果要将xpath用于按钮,请从appium desktop inspector获取它,并将其用作:

MobileElement button= driver.findElement(By.xpath("your element's xpath shown in appium"));
button.click();
 类似资料:
  • 我是C#scraping的新手,我已经建立了一个小型C#scraping项目并尝试运行。我要添加一个点击事件,因为点击事件后会打开下拉列表(显示足球比赛分数,例如:3-0)。这是网页的html结构: 我将用selenium实现这个功能 但它不起作用:错误- 它说:“元素不可交互”我很困惑,我无法在标记上实现这个点击事件。期待这个问题有一个好的解决方案。问候...

  • 我有一个listView,它充满了字符串的数组列表,我想让它可点击...但我无法识别哪个项目被点击了 我做了这个,但没用! 有办法知道被点击的字符串吗?如果没有,是否有办法知道被点击项目的位置?

  • 我正在尝试网络抓取,我需要模拟对buttoN的点击,我已经尝试过了: 并返回此错误: selenium . common . exceptions . nosuchelementexception:消息:没有这样的元素:找不到元素:{"method":"xpath "," selector ":"//*[@ id = " CTL 00 _ CP h1 _ BtnTipoGobierno "]" }

  • 我还看到了如下代码块: 但我不确定如何操纵来获得计数

  • 我想创建一个下拉列表和一个按钮,功能是当我点击按钮,然后按钮不是可点击的意思是禁用,它是显示,首先点击下拉列表。然后按钮是启用的。我们如何使我尝试但没有发生,我没有太多的想法。所以任何机构帮助我解决这个问题。 我试过这个jquery函数我对jquery不太了解。所以谁来帮帮我。

  • 如果这个问题是重复的,我很抱歉,但我已经在这个网站上跟踪了很多页面,试图找到一个答案,但我还没有找到一个可行的答案。我使用过的一些页面包括: PyGame鼠标点击检测 自己找不到rect? 如何碰撞。pygame中的rect工作 这可能是我缺乏编码理解,如果是这样,我道歉。然而,我发现最“有帮助”的页面是第一个链接。用树懒的第一个回答,这似乎很简单,也是我能做的事情。一旦他的方法不起作用,我试着在