Java 可与Selendroid互舔
我正在寻找一种在Selendroid中获取在真实设备上运行的应用程序的当前视图转储的方法。现在我知道了,你可以用Java 可与Selendroid互舔,java,android,selendroid,Java,Android,Selendroid,我正在寻找一种在Selendroid中获取在真实设备上运行的应用程序的当前视图转储的方法。现在我知道了,你可以用 driver.getPageSource() 也就是我目前正在使用的。这个方法为我提供了一个XML格式的所有可见视图元素的层次结构,可以用XPath解析。输出如下所示: <?xml version="1.0" encoding="UTF-8"?> <views> <DecorView name="" label="" value="" ref="
driver.getPageSource()
也就是我目前正在使用的。这个方法为我提供了一个XML格式的所有可见视图元素的层次结构,可以用XPath解析。输出如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<views>
<DecorView name="" label="" value="" ref="97bc5edf-6001-0c8a-3550-92822dfe3d55" id="" shown="true">
<rect x="0" y="0" height="1920" width="1080" />
<LinearLayout name="" label="" value="" ref="da84259b-f404-d100-7eb6-ed006469d60e" id="" shown="true">
<rect x="0" y="0" height="1920" width="1080" />
<ViewStub name="" label="" value="" ref="beb2dd1c-4a0e-25ef-26ff-30fa1eb628d0" id="action_mode_bar_stub" shown="false">
<rect x="0" y="0" height="0" width="0" />
</ViewStub>
(...)
(...)
不幸的是,我只需要可以单击的元素。在androidsdk中,可以在视图上使用isClickable来检查是否有为其注册的click侦听器
是否可以使用Selendroid访问元素的isClickable属性?Alternative是否有其他方法可以获取带有Selendroid的应用程序的当前视图转储,这将为我提供元素的isClickable属性值
最后一件事:我正在做的是一个应用程序的通用测试,我没有源代码。因此,我无法在运行前定义视图元素。这必须动态进行。您应该使用uiautomatorviewer之类的工具[位于SDK工具文件夹中]来手动检查流程。Selendroid不提供“可点击”功能,但您可以选择“可点击”或:
WebElement element = driver.findElement(/* ... */);
try{
element.click();
}catch(SelendroidException ex){
/* your listener for output */
}
或者
是的。。真的很难找到合适的方法来做到这一点
element = WebDriverWait(driver, 10).until(
ExpectedConditions.elementToBeClickable(/* way to identity element */));