Page component object паттерн - проблема с разделением логики для авторизованных и неавторизованных юзеров

Спасибо за ответ, проект на c#, статик свойство думаю сделать в базовом классе страницы, а блоки тогда не дублировать. В методах конкретных классов страниц делать условие if (GeftIsLogged ==true) {//проверим видимость элементов, которые должны быть в блоке для залогиненных) else //выполним методы для незалогиненых (кстати может тогда методы лучше дублировать, а не условия в них делать? Типа я же знаю, что я сейчас залогинена, и вызываю только отдельные методы для залогиненых?)

Не нужно никаких условий - вы же знаете, что тестируете, поэтому обращаетесь к конкретному классу страницы.
Дублировать тоже не надо - все общие методы вынесены в абстрактный класс-родитель, отличающиеся - переопределяете, недостающие - дописываете.

Около того, только как сказал @breakmt - без условий.
Просто должны быть разные тесты - для залогиненых пользователей и не залогиненых. Это будет логичней для большинства людей + еще будет четко понятно где упало. А все возможные действия для страницы - в одном пейдобджекте. Я стараюсь избегать сверхуниверсальных вещей которые пытаются разрулить любую ситуацию на странице - очень сложно поддерживать и внедрять дополнительную логику.
Но вообще писать можно по разному - главное чтобы вам было удобно поддерживать.

я такое дженериками пофиксил…Вам по сути нужно для разних юзверов делать переходи на разние пейдж обжекти:

@Step(value = "Login to redirected page with user account login: \"{0}\" and password: \"{1}\"")
public <T extends WebPage<T>> T loginToRedirectedPage(String username,
		String password, Class<T> clazz) {
	fillLoginForm(username, password);
	return CriteriaPageFactory.criteriaInitWebElements(webDriver, clazz);
}

у меня тут просто свой абстрактний базовий пейдж и свой пейдж фектори…

У нас проект разжился отдельным фронтом, где все должны быть всегда авторизованы и если пользователь делает логаут, то ему на любой странице сразу незакрываемый попап с блоком авторизации выдается. Вот теперь видимо надо либо в тесты либо в методы страниц добавлять условие, что если это другая площадка, то там логика другая. (как вариант - смотреть на урл).

Куда лучше добавить? В тесты? Или вообще отдельный проект создать? Пока что я добавила новый базовый класс для тестов и прописала там отдельный [SetUP] для TestFixture.

А почему не создать отдельный класс AuthorizedPage, в котором будет метод *logIn(), а также остальные методы, элементы, проверяющие логику работы авторизованного пользователя.
В самой же папке с тестами src/java/test создать класс AuthorizedPageTest и в нем уже писать тесты для авторизованного пользователя.

да у меня там даже больше получается, AuthorizedMenu, AuthorizedHeader и агрегация всего этого на страницах типа AuthorizedMainPage и AuthorizedProductPage.