【问题标题】:Appium Native App Automation in C#-C# 中的 Appium 原生应用自动化
【发布时间】:2017-02-16 02:57:08
【问题描述】:

“OpenQA.Selenium.NoSuchElementException”类型的异常发生在 WebDriver.dll 中,但未在用户代码中处理。
代码甚至没有定义单个元素。你能建议如何纠正这个问题吗?

 AppiumDriver<IWebElement> driver;
                    DesiredCapabilities capabilities = new DesiredCapabilities();
                    capabilities.SetCapability("deviceName", "Android Emulator");
                    capabilities.SetCapability(CapabilityType.Platform, "Windows");
                    capabilities.SetCapability("platformVersion", "6.0.1");
                    capabilities.SetCapability("platformName", "Android");

                    capabilities.SetCapability("appPackage", "smartscaffolder.sitemanager.lyndon");
                    capabilities.SetCapability("appActivity", "smartscaffolder.sitemanager.lyndon.MainActivity");

                    driver = new AndroidDriver<IWebElement>(new Uri("http://127.0.0.1:4723/wd/hub"), capabilities, TimeSpan.FromSeconds(60));

                    Thread.Sleep(5000);       

                    var clearuname = driver.FindElementByClassName("//android.widget.Image");
                    clearuname.Click();

                    Thread.Sleep(5000);
                    var el = driver.FindElementsByClassName("android.widget.EditText").ToList();

【问题讨论】:

    标签: c# android appium ui-automation


    【解决方案1】:

    我会推荐使用driver.findElement(By.xpath("//android.widget.Image[1]"));

    这是 java 中的代码,但我假设它在 C# 中非常相似。

    由于无法找到单个元素,您可能会遇到此异常。您可以通过

    来验证这一点
    driver.findElements(By.xpath("//android.widget.Image[1]"));
    

    注意findElements 命令中的s。

    我建议使用 appium 检查器并复制页面的 xml,然后使用诸如 this 之类的网站来验证您是否获得了特定元素。

    如果这不起作用,请在您的描述中包含更多信息,例如:Appium 版本、android 操作系统和 appium 日志的glist,因为它对于诊断问题非常有用。

    【讨论】:

      猜你喜欢
      • 2018-03-20
      • 2015-04-09
      • 2015-09-27
      • 2016-10-13
      • 2021-08-04
      • 1970-01-01
      • 2015-02-07
      • 1970-01-01
      • 2021-05-21
      相关资源
      最近更新 更多