Есть 3 поля input. С первого input создала переменную (это фамилия)
String field = driver.findElement(By.xpath("//input")).getAttribute("value");
Но есть еще другие 2 поля (имя, отчество)
На выходе в таблицу попадает строка “фамилия имя отчество”, но так как я занесла в переменную только “фамилию”, не получается сравить эти две записи командой
assertEquals(field, driver.findElement(By.xpath("//ячейка в таблице.getText());
В IDE было
*${фамилия}*
В Java такой номер не проходит, как указать что нужно не точное совпадение, а то, что строка “фамилия имя отчество” просто содержит ранее объявленную переменную field?
я не умею заносить в переменную все input разом, только по очереди если создать 3 раза String, потом их как-то преобразовать в один String, а уже потом сравнивать с результативной ячейкой
но я знаю, что это неправильно и коряво
а ваш вариант сработал, спасибо!
еще вопросик, если позволите, почему нельзя в данном случае использовать assertEquals, а вместо него надо assertTrue?
Может и коряво, зато Вам будет понятней и сразу будете сравнивать целиком поле и значение, а не кусочками. Сначала делаете три независимых переменных, а потом склеиваете в одну: String result = string1 + string2 + string3;
возможно придется добавить пробелы, тогда будет String result = string1 + " " + string2 + " " + string3;
assertEquals сравнивает два значения в скобках, чтобы они были точно равны друг другу. asserTrue проверяет чтобы выражение в скобках было true. А s.contains(field) вернет true если в переменной содержится нужный Вам текст.
Через assertEquals можно сделать так: String s = driver.findElement(By.xpath("//xpathhere").getText());
Assert.asassertEquals(true, s.contains(field));
а тут примеры с подвывертом, если таблица будет какое-то время прорисовывать и нужно дождаться значения в ячейке.
Сахаром называю т.к. можно и без него, но в целом облегчает диагностику.
В случае assertTrue(False), или assertEquals(False, True), можно получить содержательное True didn't equal False, и трассу.
hamCrest берет на себя задачу представить ошибку в человекочитаемом виде (из доки):
assertThat(title, className("big-title");
java.lang.AssertionError:
Expected: element "class" attribute is "big-title"
but: <Title> "class" attribute is "another-class-name"