Respuestas:
not () es una función en xpath (a diferencia de un operador), entonces
//a[not(contains(@id, 'xx'))]
puedes usar la not(expression)
función
o
expression != true()
Ninguna de estas respuestas me funcionó para Python. Resuelto por esto
a[not(@id='XX')]
También puede usar o condicionar en su xpath por |
operador. Como
a[not(@id='XX')]|a[not(@class='YY')]
A veces queremos elemento que no tiene clase. Entonces puedes hacer como
a[not(@class)]