Java 在另一个元素中使用显式等待查找元素
我有以下代码:Java 在另一个元素中使用显式等待查找元素,java,android,automation,appium,qa,Java,Android,Automation,Appium,Qa,我有以下代码: List<MobileElement> messages = driver.findElements (By.id ("body_bubble")); //find all messages MobileElement lastMessage = messages.get (messages.size () - 1); //get last message // xpath query to check if the message is delivered Str
List<MobileElement> messages = driver.findElements (By.id ("body_bubble")); //find all messages
MobileElement lastMessage = messages.get (messages.size () - 1); //get last message
// xpath query to check if the message is delivered
String xpathDeliveryStatus = ".//*[contains(@resource-id, 'delivered_indicator') or contains(@resource-id, 'read_indicator') or contains(@resource-id, 'sent_indicator')]";
MobileElement deliveryStatus = lastMessage.findElement (By.xpath (xpathDeliveryStatus));
List messages=driver.findElements(By.id(“body_bubble”)//查找所有邮件
MobileElement lastMessage=messages.get(messages.size()-1)//收到最后一条消息
//xpath查询以检查消息是否已传递
字符串xpathDeliveryStatus=“../*[包含(@resource id,'delivered_indicator')或包含(@resource id,'read_indicator'))或包含(@resource id,'sent_indicator')”;
MobileElement deliveryStatus=lastMessage.findElement(By.xpath(xpathDeliveryStatus));
我也希望这样做,只是希望使用显式等待查找deliveryStatus
变量因此,我想使用
wait.until(ExpectedConditions.visibilityOfElementLocated(By.locator))在lastMessage
变量中查找deliveryStatus
变量
我该怎么做
我不想使用一个巨大的Xpath。此外,我甚至不知道如何使用Xpath查找id为body\u bubble
的最后一个元素,因为这些元素的数量不是固定的,而且总是在变化
p.S.例如,在Python中,我们可以使用构造函数中的元素而不是驱动程序来定义WebDriverWait
:
WebDriverWait(webelement,self.timeout)
不幸的是,它在Java中不起作用。基于,看起来我们可以使用presenceOfNestedElementLocatedBy
在子元素上添加显式等待:
WebDriverWait wait = new WebDriverWait(driver, 15);
WebElement childElem = wait.until(
ExpectedConditions.presenceOfNestedElementLocatedBy(lastMessage, By.xpath(xpathDeliveryStatus)));
非常感谢。还可以发现我可以使用这样的东西:wait.until(ExpectedConditions.visibilityOf(lastMessage.findElement)(By.xpath(xpathDeliveryStatus))代码>很高兴听到这对你有用ExpectedConditions
类在所有语言中都非常灵活。