Geb assert на текст строки HTML таблицы
Я новичок в Geb, я пишу тест, который будет проверять текст на веб-странице и утверждать, если значение существует. Интересующий меня текст - это текст строки таблицы. Вот CSS / xpath строки моей таблицы HTML.
/html/body/table/tbody/tr[3]/td/table/tbody/tr[3]/td[2]/table/tbody/tr/td/table/tbody/tr[2]/td/b/pre/a
body > table > tbody > tr:nth-child(3) > td > table > tbody > tr:nth-child(3) > td:nth-child(2) > table > tbody > tr > td > table > tbody > tr:nth-child(2) > td > b > pre > a
мне нужно проверить, соответствует ли значение этой строки конкретному тексту и подтвердить его.
Какой лучший способ сделать в Гебе. Я испробовал множество вариантов, и я не получил четкую подсказку.
class HomePage extends Page
{
static at ={ title== "Dispute Home Page"}
static content = {
displayMsg {$(By.xpath("/html/body/table/tbody/tr[3]/td/table/tbody/tr[3]/td[2]/table/tbody/tr/td/table/tbody/tr[2]/td/b/pre/a"))}
def message = displayMsg.text()
assert (message == 'text pattern')
}
}
заранее спасибо
2 ответа
Для начала я настоятельно рекомендую вам воспользоваться API-интерфейсом Geb для навигатора, который позволяет получать содержимое со страницы, практически идентичное jquery. Использование xpath трудно читать, поддерживать и не рекомендуется.
В вашем блоке контента, если вы определите таблицу с идентификатором:
myTable{ $("table#myTable")}
Теперь вы можете делать такие вещи:
myTable.children('td').find{it.text() == 'your text here' }
Конечно, это можно расширить, чтобы найти конкретные строки или данные таблицы по имени или даже индексу. У меня есть несколько примеров правильных объектов страниц и файлов спецификаций в моем Github Repo, которые должны помочь вам в написании будущих тестов. Я надеюсь, что это дает вам достаточно для работы.
Похоже, вы утверждаете в блоке контента. Это должно быть по-своему. Что-то вроде этого:
class HomePage extends Page
{
static at ={ title== "Dispute Home Page"}
static content = {
displayMsg {$(By.xpath("/html/body/table/tbody/tr[3]/td/table/tbody/tr[3]/td[2]/table/tbody/tr/td/table/tbody/tr[2]/td/b/pre/a"))}
}
def textCompare(){
def message = displayMsg.text()
assert (message == 'text pattern')
}
}