我写了一个测试,用户向另一个人发送消息。我需要选择每次发送的最后一条消息并验证其属性值。
driver.findElement(By.xpath("//*[@id=\"chatView\"]/div/div[1]/div[1]")).sendKeys("Hello SMS");
driver.findElement(By.xpath("//*[@id=\"chatView\"]/div/div[1]/div[1]")).sendKeys(Keys.ENTER);
List<WebElement> webElements = driver.findElements(By.id("messagesContainer"));
WebElement lastElement = getLast.driver.findElement(By.className("message-item"));
System.out.println(lastElement);
System.out.println(lastElement.getAttribute("data-deliverystatus"));
答案 0 :(得分:0)
您可以使用列表的大小减一。
List<WebElement> webElements = driver.findElements(By.id("messagesContainer"));
WebElement lastElement = webElements.get(webElements.size() - 1));
// example test in testng, expecting SENT
Assert.assertEquals(lastElement.getAttribute("data-deliverystatus"), "SENT");
答案 1 :(得分:0)
findElements(By.id("messagesContainer"))
将返回一个元素的列表,即消息的父元素。如果您需要使用
List<WebElement> messages = driver.findElements(By.className("message-item"));
要获取最后一个,请使用列表大小减去1的索引
List<WebElement> messages = driver.findElements(By.className("message-item"));
WebElement lastMessage = messages.get(messages.size() - 1);
Assert.assertEquals(lastMessage.getAttribute("data-deliverystatus"), "sent");