В начале у вас неправильное имя класса, у вашего div есть класс m-product-mini-image, но ваш xpath просто ищет m-product-mini, xpath:
//div[@class='m-product-mini-image']//a[@class='m-product-mini-price ']//span[not(contains(text(),'$'))]
работает нормально, однако проблема в том, что он находит 2 тега диапазона для каждой записи, так как у вас есть диапазон для цены, который будет либо пустым, либо будет указана цена, а затем следующий диапазон с классом.= priceTag-скидка в нем.Таким образом, на странице с обоими html-фрагментами он находит 3 элемента, а не 1. Таким образом, вам нужно либо удалить один из тегов span (возможно, установить класс в теге span, который содержит цену), либовам нужно будет использовать следующий xpath, если это невозможно
//div[@class='m-product-mini-image']//a[@class='m-product-mini-price ']//span[not(contains(text(),'$')) and not(contains(@class,'priceTag-discount'))]