当我尝试在android网络视图中单击元素时出现NoSuchElementFoundException

时间:2019-05-13 07:18:52

标签: java selenium appium

appium版本:1.12.1 窗户10 工作平台= Android版本5.1.1 在Android 4.4、6.0及更高版本中不起作用

我试图在android网络视图中单击显示NoSuchElementFoundException的元素

appDebuggingMode已启用,我也使用了一种方法来切换上下文,但是在所有android平台上它都将可用上下文显示为[NATIVE_APP]

元素在android版本5.1.1中是可单击的(无需切换在本机上下文中运行的上下文),而在android版本4.4、6.0及更高版本中不起作用

我正在尝试通过以下方式切换上下文:

Set availableContexts = driver.getContextHandles();

    System.out.println("context available " +availableContexts);

    for (String context : availableContexts) 
              {
        if (context.contains("WEBVIEW")) {

            driver.context(context);        
                break;

                }
     }

我尝试通过以下方式单击元素:

WebDriverWait wait = new WebDriverWait(driver, 120);
wait.until(ExpectedConditions.visibilityOf(element)); 
element.click();

请为我提供解决此问题的方法。

1 个答案:

答案 0 :(得分:0)

您的应用程序很可能是为Android KitKat禁用的debugging of elements which are in the WebView(或更高版本)构建的。

您需要请您的应用程序开发人员enable the debugging of the elements which are inside the WebViews,否则Appium将无法识别它们。

如果由于某种原因无法进行操作,您仍然可以继续进行操作,perform instrumentation of the application将解锁成功测试所需的功能,包括但不限于访问WebView的内容。

最后但并非最不重要的一点是,您可以通过基于机器视觉的测试实现来解决该问题,并使用Sikuli或其他基于OpenCV的工具来查找特定图像