Если я вызываю findEventWithStatus ("Comment", "Completed") вместо того, чтобы возвращать одно событие, он возвращает весь список событий, созданных методом getEvents ().Почему это так?Применимый код ниже.
Определение объекта Event: -
class Event {
String description
String date
String status
WebElement editEvent
WebElement deleteEvent
}
Получение событий из таблицы HTML с использованием селена: -
def getEvents() {
def eventSize = driver.findElements(By.xpath('//div[@id[contains(.,"eventsReviewTable")]]/table/tbody/tr')).size()
def eventList = new ArrayList()
def event = new Event()
def x
for (y in 0..eventSize-1) {
x = (y+1).toString()
event.date = driver.findElement(By.xpath("//div[@id[contains(.,'eventsReviewTable')]]/table/tbody/tr["+ x + "]/td[1]/div/span")).getText()
event.description = driver.findElement(By.xpath("//div[@id[contains(.,'eventsReviewTable')]]/table/tbody/tr["+ x + "]/td[2]/div/span")).getText()
event.status = driver.findElement(By.xpath("//div[@id[contains(.,'eventsReviewTable')]]/table/tbody/tr["+ x + "]/td[4]/div/span")).getText()
event.editEvent = driver.findElement(By.xpath("//div[@id[contains(.,'eventsReviewTable')]]/table/tbody/tr["+ x + "]/td[6]/div/a[@id[contains(.,'editEventLink')]]"))
event.deleteEvent = driver.findElement(By.xpath("//div[@id[contains(.,'eventsReviewTable')]]/table/tbody/tr["+ x + "]/td[6]/div/a[@id[contains(.,'deleteEventLink')]]"))
eventList.add(event)
event = new Event()
}
return eventList
}
Поиск события с определенным статусом иописание: -
def findEventWithStatus(String desc, String status) {
def events = getEvents()
events.each() {
if(it.description == desc && it.status == status) {
return it
}
}
}