Просто чтобы прояснить ситуацию |
не является или, это объединение и возвращает набор результатов.
Вы комбинируете свои наборы результатов для "//a[contains(@data-testid,'actionLink')]
с набором результатов для //a[contains(@aria-pressed,'false')]"
.
Причина, по которой вы получаете логический результат, заключается в том, что именно так работают логические операторы (они дают логический ответ на два условия, для списков узлов это будет верно для непустых и ложно для пустых списков).
Если вы хотите получить такие узлы, которые, как вам кажется, вам нужны, вы должны написать свой запрос таким образом, чтобы вы соответствовали a
тегам, где фильтр содержит ваше комбинированное сравнение:
"//a[contains(@data-testid,'actionLink') and contains(@aria-pressed,'false')]"