如何点击不可点击的元素?

Posted

技术标签:

【中文标题】如何点击不可点击的元素?【英文标题】:How to click on a non clickable element? 【发布时间】:2019-08-04 19:21:38 【问题描述】:

我正在尝试自动化 android 应用程序,但是我需要点击的元素在节点详细信息中有一个不可点击的属性。

我写了这行代码希望成功,但是我的尝试没有成功。

driver.findElement(By.id("com.offerup:id/circle")).click();

谁能引导我朝着正确的方向前进?我迷路了。提前谢谢你。

【问题讨论】:

该框架是否包含两个元素(父框架)? 您有时可以使用 ExplicitWait 或 Thread.sleep() 等到元素出现。 Thread.sleep 不是推荐的方式。您还可以检查是否可以使用 appium 桌面检查器点击元素。 @suban 元素不可点击他怎么想点击,他可以等待但没有用 即使在 uiautomatorviewer 或 appium 检查器中显示该元素不可点击,如果元素有 onClick 事件,您将能够点击该元素 我尝试过使用 Thread.sleep() 方法,但是,我的 appium 日志给了我一个 nosuchelement 异常,有时它根本不会给我一个错误,它只是在那一点停止。这很奇怪,因为我在上面发布的代码在模拟器上使用时可以工作,但是如果我尝试在手机上运行相同的代码,那么它就会失败。 【参考方案1】:

如果你能得到position of that element,那么你可以直接点击坐标。

【讨论】:

Rectangle rect = driver.findElement(By.id("com.offerup:id/circle")).getRect() 然后discuss.appium.io/t/tapping-on-the-screen-by-using-coordinates/…【参考方案2】:

@Damone Williams,我有一种感觉,您使用了不正确的元素定位器(属性 ID)。

请您连接设备并试用 Chrome/Safari 远程调试器。 我建议切换到 Web Element 检查器并确保您尝试点击的元素 - 可以在 Element 检查器中找到。

这里是step-by-step manual如何建立Chrome/Safari远程调试器。 稍后(约 2 小时后)我将分享说明性视频快照和说明。

希望这对您有所帮助。 最好的祝福, 尤金

【讨论】:

以上是关于如何点击不可点击的元素?的主要内容,如果未能解决你的问题,请参考以下文章

使元素在动画时不可点击

元素在点不可点击。其他元素会收到点击:

Selenium:元素不可点击...其他元素会收到点击

什么可能导致元素不可点击,而它是相同的元素?

提交元素不可点击的硒python

WebDriverException:元素此时不可点击