我已遵循此代码
try{Thread.sleep(2000);} catch(Exception ignore){}
w8_Dirty.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//*[@text='Reject Inspect']")));
Dirty.findElement(By.xpath("//*[@id='btnRejectDirty']")).click();
所以我尝试等待直到启用元素,但它将无法工作。它说
未知错误(发生未知服务器端错误。status ='false'。无法完成内部方法:'click args:[NATIVE,xpath =(// [@ id ='btnRejectDirty']))[1],0, 1]',详细信息:无法单击'xpath =(// [@ id ='btnRejectDirty'])[1]'。无法单击。该元素已找到但在屏幕上不可见)(警告:服务器未提供任何堆栈跟踪信息)
我该怎么办?。 PS。我使用Java。
我不知道屏幕上实际发生了什么,启用了什么元素,但这是我的建议。显然,驱动程序无法在不可见的元素上单击(您可以在日志中看到此类原因)。您可以滚动到它,然后使用以下方法单击它:
public void scrollToElementByText(String text) {
driver.findElementByAndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().text(\"" + text + "\").instance(0))");
}
您可以通过滚动元件text或description例如。其他建议是,元素不是,clickable因此您不能click()在其上执行。为了澄清这种情况,请在此处粘贴一些截图,其中包含此特定元素的DOM树。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。