【问题标题】:Find element in appium在appium中查找元素
【发布时间】:2016-11-08 13:50:39
【问题描述】:

如何在具有特定索引的线性布局中找到一个元素,如在图像中获得的那样,我有这个元素 android.widget.EditText,它的索引为 3。当我尝试使用搜索参数找到它时:
driver.FindElement(By.XPath("//android.widget.EditText[@index='3']")).SendKeys("123");
我也试过了
driver.FindElementByXPath("//*[@class='android.widget.EditText' and @index='3']").SendKeys("123");

我得到了这个异常 {"An element could not be located on the page using the given search parameters."}

如何选择这个元素?

【问题讨论】:

    标签: android xpath appium


    【解决方案1】:

    由于涉及索引,我建议您将元素标识符放在列表中,然后获取索引并单击。试试下面的代码

    List<WebElement> list= driver.findElements(By.XPath("identifier"));
    System.out.println("size of List= " + list.size());
            list.get(3).click();
    

    【讨论】:

      【解决方案2】:

      您拥有的是driver.FindElement(By.XPath("//android.widget.EditText[@index='3']")).SendKeys("123");,这是通过属性搜索xpath 的语法,其中@attribute 是属性。然而,对于索引,它更简单。就做driver.FindElement(By.XPath("//android.widget.EditText[3]")).SendKeys("123");

      【讨论】:

      • 您可能会在页面加载完成之前寻找元素。尝试先使用等待 (seleniumhq.org/docs/04_webdriver_advanced.jsp)
      • 没有变化,当尝试使用 id 搜索时发现同样的问题driver.FindElement(By.Id("password_edit_text")).SendKeys("123456");
      • 您是否尝试过使用 appium 检查器来验证您的定位器查询是否正确?您必须绝对确定您的查询是正确的,并且在执行搜索之前加载了页面。
      猜你喜欢
      • 2020-11-25
      • 2016-01-21
      • 2016-05-30
      • 2020-04-25
      • 2017-09-14
      • 2015-05-03
      • 2019-11-02
      • 2020-03-01
      • 2018-05-20
      相关资源
      最近更新 更多