Либо один работает нормально. Все сводится к содержанию, с которым вы хотите сопоставить.
Примеры, показанные в w3.org xpath, сокращенный синтаксис предлагает двойные кавычки ("
).
Причина в том, что вы можете убежать "
с помощью \"
, но вы не можете убежать '
с помощью \'
.
Если значение, которое вы хотите сопоставить, содержит символ '
, вы должны использовать "
для переноса значения.
//div[@ng-show="element['ServerValidationFailed']"]
Если значение, которое вы хотите сопоставить, содержит "
, но не '
, вы можете использовать '
для переноса значения.
//div[@ng-show='element["ServerValidationFailed"]']
Если значение, которое вы хотите сопоставить, содержит и "
& '
, вы должны использовать "
, чтобы обернуть значение и экранировать "
в вашем значении с помощью \"
.
//div[@ng-show="element['ServerValidationFailed']==\"0\""]
Это будет соответствовать что-то вроде
<div ng-show="element['ServerValidationFailed']=="0""></div>
Не говорю, что вы должны это делать, но на всякий случай, если вам это нужно.