Java 使用xPath查找时,Appium查找错误的元素
我正在使用Selenium和Appium编写一个开发脚本,我遇到了Selenium定位器拾取错误元素的问题 基本上,我想单击一个没有分配ID的按钮;所以我唯一能识别它的就是它的文字Java 使用xPath查找时,Appium查找错误的元素,java,android,selenium,xpath,appium,Java,Android,Selenium,Xpath,Appium,我正在使用Selenium和Appium编写一个开发脚本,我遇到了Selenium定位器拾取错误元素的问题 基本上,我想单击一个没有分配ID的按钮;所以我唯一能识别它的就是它的文字 public Element button1(){ By locator = By.xpath("//android.widget.TextView[@text='button1']"); return new xElement(driver.findElement(locator), locator
public Element button1(){
By locator = By.xpath("//android.widget.TextView[@text='button1']");
return new xElement(driver.findElement(locator), locator);
}
这是获取button1对象的定位器方法。顺便说一句,屏幕上没有其他按钮的文本接近按钮1的文本。在按钮上调用的方法单击
,其格式如下:
public void clickBtn1(){
button1().click();
}
被点击的按钮基本上有文本“手推车”。这只是为了澄清被按下的按钮在接近按钮1的值的地方没有文本
我已经多次使用UI自动机来确认button1的实际文本值。奇怪的是,脚本偶尔会工作,所以我不确定问题出在哪里
我还尝试了“等待启用”方法来解释比赛条件。尝试使用Appium inspector搜索您的按钮。您可以键入xpath并搜索元素以查看它找到了什么。inspector的另一个优点是,您可以看到本机控件属性如何映射到Appium属性“文本”可能不是您实际需要的属性。另外,您是否尝试过搜索按钮本身的属性(而不是TextView) 如果它偶尔工作,首先尝试使用xpath以外的其他元素。第二,在你执行类似这样的动作之前,试着发出一些睡眠命令
WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.visibilityOfElementLocated(ByLocator(locator)));
请看是否有用