Respostas:
not () é uma função no xpath (ao contrário de um operador), portanto
//a[not(contains(@id, 'xx'))]
você pode usar a not(expression)
função
ou
expression != true()
Nenhuma dessas respostas funcionou para mim em python. Eu resolvi com isso
a[not(@id='XX')]
Além disso, você pode usar ou condicionar no seu xpath pelo |
operador. Tal como
a[not(@id='XX')]|a[not(@class='YY')]
Às vezes queremos um elemento que não tem classe. Então você pode fazer como
a[not(@class)]