我正在使用appium和dot-net-driver。
我试图通过应用程序的所有活动来获取每个页面上的所有元素。
但我无法找到获取所有元素列表的正确方法。
我尝试使用c#正则表达式,但没有运气。
如果有人偶然发现了这个问题,可以提供帮助,我们将不胜感激!
我试图做的事情:
public void getElementToFile()
{
//var elementsList = driver.FindElementsByXPath("//android.widget");
var elementsList = driver.FindElementsByClassName("android.widget");
foreach(var element in elementsList){
WritingText(element.Text);
}
}
答案 0 :(得分:1)
var elementsList = driver.FindElementsByXPath("//*");
是的,我必须警告你不应该这样做,因为它根本不会有效。您需要使用特定的xpath和ID来进行任何自动化。这与您的语言或司机无关。
答案 1 :(得分:0)
有时候,当我按类名找到时,我也遇到了类似的问题。所以我使用xpath,它总是工作。以下是java中的代码片段
List<WebElement> allCheckBoxes=driver.findElementsByXPath("//*[@class='android.widget.CheckBox']");
for (WebElement webElement : allCheckBoxes) {
System.out.println(webElement.getText());
}
答案 2 :(得分:0)
我能够使用以下行找到页面上的所有元素。
我猜测Regax的压缩点网络驱动程序支持是有限的。 @Shekhar Swami,谢谢,你的答案是一个指导!
使用Appium和dot-net-driver查找当前活动的所有元素:
IList<AppiumWebElement> els6 = driver.FindElementsByXPath("//*");