如何在Android中识别点击的元素ID?

时间:2019-05-02 18:09:38

标签: android selenium automation adb appium

我正在做一个研究项目,其中包括Android自动化。需要自动执行在用户点击屏幕时记录的步骤。

我花了整整2天的时间来找到通过PC端识别屏幕上被点击元素的正确方法(在设备本身上也可以)。

我们需要向自动化框架提供ID,文本等。这有点像自动化框架的反向版本。需要记录硒添加物之类的步骤。

有人可以建议我实现我的要求的方法吗?无需示例代码。寻找有关如何实施此要求的想法。

谢谢

2 个答案:

答案 0 :(得分:0)

这是对您有帮助的方法。

1)获取文档中的所有元素

2)为每个步骤添加一个自定义事件侦听器

3)使用事件监听器跟踪点击

这是示例代码,我是如何在其中一个chrome插件中做到这一点的。

this.AddEventListeners = function()
{
    var document = window.document;
    var elements = this.GetAllElements(document.body);

    for (var i = 0; i < elements.length; i++)   {
        // not sure if it's onTouchEvent event or something else (update the event accordingly in the below line)
        elements[i].addEventListener("onTouchEvent", customTapEvent, false);
    }   
    this.haveEventListeners = true;
}

GetAllElements方法:

this.GetAllElements = function(element)
{
    var elements = new Array();

    if (element && element.hasChildNodes()) {
        elements.push(element);

        var childs = element.childNodes;

        for (var i = 0; i < childs.length; i++) {
            if (childs[i].hasChildNodes()) {
                elements = elements.concat(this.GetAllElements(childs[i]));
            }
            else if (childs[i].nodeType == 1) {
                elements.push(childs[i]);
            }
        }
    }

    return elements;
}

customTapEvent方法编写逻辑。

答案 1 :(得分:0)

要记录您的事件,您需要使用 Appium (Android + iOS)。有关步骤,您可以尝试黄瓜库。您可以在youtube上找到所需的所有内容。