Для проверки XPath удобно пользоваться плагинами к Firefox: FirePath и FireFind.
Для хрома проверить работоспособность XPath можно, набрав в консоли (инструменты разработчика):
Вам нужно проверить Xpath или что таблица содержит определенные колонки?
Если второе, то по какому признаку требуется проверять колонку? Можно, например, взять текст столбца или ячейки элемента через getText
Есть еще ExpectedConditions которые могут проверить (не)видимость, доступность или просто наличие определенного элемента в DOM.
Нужно проверить определенные колонки. Их много. Я думал про вариант создать список через find_elements, а потом сделать assert на каждое имя колонки, но выходит не очень изящно.
Очень заманчиво выглядит создать один громоздкий XPATH со всеми именами колонок, а потом в тесте один раз вызвать assertTrue. Но вот как бы этот true выдернуть?
joemast, я имел в виду проверить этот xpath в теле теста. Через плагин FirePath я его проверил. Теперь мне нужно убедиться, что таблица с конкретным набором колонок появляется на странице.
Мне показался заманчивым вариант описать всю таблицу с помощью одного xpath. Возможно я не прав, тогда придется делать проверку каждой колонки.
Зачем делать один громоздкий XPath, когда все колонки можно найти по одному простому XPath, подставляя в него имя колонки. И в цикле проверить, что все они есть на странице
Но тогда выходит, что использование логики в xpath (and, or) никак нельзя применить в Вебдрайвере, потому что find_element такой xpath не будет понимать? Я прав?
В применении к WebDriver лучше придерживаться максимально простых конструкций локаторов: не использовать selectors (CSS, XPath), если можно использовать id или name, не использовать сложных конструкций селекторов, если можно использовать простые.
AND и OR в XPath-селекторах работают, я помню, когда использовал, у меня работали. Почему у тебя не сработали надо отдельно разбираться.
Кстати, в твоей конструкции //table//th[text()="Column1"] and //table//th[text()="Column2"] and //table//th[text()="Column3"] логическая ошибка. По такому XPath могут быть найдены элементы совершенно разных таблиц, если их на странице несколько. При этом XPath вернет true и тест может дать неправильный результат