【问题标题】:Not able to click an element present under LinearLayout in the Appium无法单击 Appium 中 LinearLayout 下存在的元素
【发布时间】:2018-06-22 10:28:26
【问题描述】:

我想在注册时点击国家代码页面上的国家。 但是,我已经尝试了所有findbyElement 方法来单击元素,但它总是导致

没有这样的元素错误。

谁能帮帮我。

PS:我用过xpathIDList。但它不起作用,如果您对尝试过的方法有任何想法,请分享,因为我是 Appium 的新手,可能是错误的。 谢谢

截图

Dumpfile screenshot DumpfileforUIautomator

【问题讨论】:

  • 试试 driver.findElement(By.id("asdf")).sendKeys("USD");

标签: java android automation appium


【解决方案1】:

您可以尝试使用xpathname

driver.findElement(By.xpath("//android.widget.TextView[@text='India']")).click();

driver.findElement(By.Name("India")).click();

driver.findElement(new By.ByName("India")).click();

driver.findElement(By.xpath("//android.widget.TextView[@index='2']")).click();

【讨论】:

  • 感谢 Al Imran,但上述代码似乎都不起作用:使用 Xpath,出现此错误:线程“主”org.openqa.selenium.NoSuchElementException 中的异常:无法定位元素使用给定搜索参数的页面。 (警告:服务器未提供任何堆栈跟踪信息)并使用其他 2 个,给出:此请求的有效定位器策略:xpath、id、类名、可访问性 id、-android uiautomator
  • 按名字怎么样?
  • 你也可以尝试使用索引!
  • 我也尝试过使用索引,但它不起作用。是不是因为dev为页面创建的结构复杂?
【解决方案2】:

问题是您定位错误的控件,您应该定位单选按钮/复选框控件,而不是旁边的标签。

尝试定位该控件,而不是标签。

driver.findElement(By.className("CheckBox Locator")).click();

尝试以下解决方案之一:

List<MobileElements>  listElement = driver.findElements(By.id("com.bondevalue.BondEvalue:id/country_rb"))

System.out.println("Size: " + listElement.size());

然后检查这是否返回任何结果。如果是,则找到元素。

比你必须找到父布局com.bondevalue.BondEvalue:id/listlayout并在列表中找到每个,并找到如图所示的子元素(复选框),当通过文本(com.bondevalue.BondEvalue:id/labelk)找到所需的元素时,然后单击复选框(com.bondevalue.BondEvalue:id/country_rb )。

希望这会有所帮助...

【讨论】:

  • 感谢 Kovacic,我已尝试为该行定位单选按钮、文本字段以及整个线性布局。但没有任何工作。它总是显示:没有这样的元素。甚至“完成”按钮也无法在该 UI 上运行。我迫切需要这个工作。
  • 能否请您提供有问题的所选屏幕的 dom,如屏幕截图中但在文本中。
  • 我可以为您提供 UIAutomator 的转储和截图文件。这样会更有效率
  • 好。分享它以打开。
  • 对不起,它现在开放。你能调查一下吗。谢谢
【解决方案3】:

根据复选框控件的屏幕截图,资源 id 似乎不是唯一的,这可能是该元素被指定为 NAF(不可访问友好)的原因。

因此,我将改为访问紧随其后的文本视图,然后使用前兄弟访问所需的复选框:

driver.findElement(By.xpath("//android.widget.TextView[@text='+91']/preceding-sibling::android.widget.CheckBox"))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-07
    • 1970-01-01
    • 2021-04-04
    • 2020-05-20
    • 1970-01-01
    • 2019-02-16
    • 2018-11-06
    • 1970-01-01
    相关资源
    最近更新 更多