Попробуйте использовать комбинацию селектора атрибута = значение css с ^, начинающимся с оператора, для нацеливания на элемент электронной почты по его значению href.
bot.FindElementByCss("[href^=mailto]")
Вы могли бы дополнительно указать, если необходимо, добавление дополнительного селектора атрибута (или, фактически, сброс второго для первого в приведенном выше):
bot.FindElementByCss("[href^=mailto][ng-if='candidate.hasEmailAddress()']")
Также рассмотрим соседний братский комбинатор, в котором вы указываете тег после значка электронной почты.
bot.FindElementByCss(".hire-icon-email-outline ~ a")
Вот одно потенциальное применение сопоставления подстроки
Dim dict As Object, key As Variant
Set dict = CreateObject("Scripting.Dictionary")
dict.Add "hasEmailAddress", vbNullString
dict.Add "hasPhoneNumber", vbNullString
For Each key In dict.keys
On Error Resume Next
dict(key) = bot.FindElementByCss("[ng-if*=" & key & "]").Text 'assuming no illegal characters in string
Debug.Print key, bot.FindElementByCss("[ng-if*=" & key & "]").Text
On Error GoTo 0
Next