title: Selenium vba xpath contains text
body: <p>I am working on a selenium vba macro. I want to fetch the td element containing "18" by Xpath.</p>
  
  <p>Following is my html.</p>
  
  <pre><code>&lt;table class="text-center"&gt;&lt;thead&gt;&lt;tr&gt;&lt;td class="text-muted" style="padding: 5px;"&gt;&lt;small&gt;Sun&lt;/small&gt;&lt;/td&gt;&lt;td class="text-muted" style="padding: 5px;"&gt;&lt;small&gt;Mon&lt;/small&gt;&lt;/td&gt;&lt;td class="text-muted" style="padding: 5px;"&gt;&lt;small&gt;Tue&lt;/small&gt;&lt;/td&gt;&lt;td class="text-muted" style="padding: 5px;"&gt;&lt;small&gt;Wed&lt;/small&gt;&lt;/td&gt;&lt;td class="text-muted" style="padding: 5px;"&gt;&lt;small&gt;Thu&lt;/small&gt;&lt;/td&gt;&lt;td class="text-muted" style="padding: 5px;"&gt;&lt;small&gt;Fri&lt;/small&gt;&lt;/td&gt;&lt;td class="text-muted" style="padding: 5px;"&gt;&lt;small&gt;Sat&lt;/small&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td style="cursor: pointer; padding: 5px;"&gt;1&lt;/td&gt;&lt;td style="cursor: pointer; padding: 5px;"&gt;2&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="cursor: pointer; padding: 5px;"&gt;3&lt;/td&gt;&lt;td style="cursor: pointer; padding: 5px;"&gt;4&lt;/td&gt;&lt;td style="cursor: pointer; padding: 5px;"&gt;5&lt;/td&gt;&lt;td style="cursor: pointer; padding: 5px;"&gt;6&lt;/td&gt;&lt;td style="cursor: pointer; padding: 5px;"&gt;7&lt;/td&gt;&lt;td style="cursor: pointer; padding: 5px;"&gt;8&lt;/td&gt;&lt;td style="cursor: pointer; padding: 5px;"&gt;9&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="cursor: pointer; padding: 5px;"&gt;10&lt;/td&gt;&lt;td style="cursor: pointer; padding: 5px;" class="bg-primary"&gt;11&lt;/td&gt;&lt;td style="cursor: pointer; padding: 5px;"&gt;12&lt;/td&gt;&lt;td style="cursor: pointer; padding: 5px;"&gt;13&lt;/td&gt;&lt;td style="cursor: pointer; padding: 5px;"&gt;14&lt;/td&gt;&lt;td style="cursor: pointer; padding: 5px;"&gt;15&lt;/td&gt;&lt;td style="cursor: pointer; padding: 5px;"&gt;16&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="cursor: pointer; padding: 5px;"&gt;17&lt;/td&gt;&lt;td style="cursor: pointer; padding: 5px;"&gt;18&lt;/td&gt;&lt;td style="cursor: pointer; padding: 5px;"&gt;19&lt;/td&gt;&lt;td style="cursor: pointer; padding: 5px;"&gt;20&lt;/td&gt;&lt;td style="cursor: pointer; padding: 5px;"&gt;21&lt;/td&gt;&lt;td style="cursor: pointer; padding: 5px;"&gt;22&lt;/td&gt;&lt;td style="cursor: pointer; padding: 5px;"&gt;23&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="cursor: pointer; padding: 5px;"&gt;24&lt;/td&gt;&lt;td style="cursor: pointer; padding: 5px;"&gt;25&lt;/td&gt;&lt;td style="cursor: pointer; padding: 5px;" class="invalid-calendar-date"&gt;26&lt;/td&gt;&lt;td style="cursor: pointer; padding: 5px;" class="invalid-calendar-date"&gt;27&lt;/td&gt;&lt;td style="cursor: pointer; padding: 5px;" class="invalid-calendar-date"&gt;28&lt;/td&gt;&lt;td style="cursor: pointer; padding: 5px;" class="invalid-calendar-date"&gt;29&lt;/td&gt;&lt;td style="cursor: pointer; padding: 5px;" class="invalid-calendar-date"&gt;30&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="cursor: pointer; padding: 5px;" class="invalid-calendar-date"&gt;31&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
  </code></pre>
  
  <p>I tried all like </p>
  
  <pre><code>"//attribute::*[contains(.,'18')]"
  "//tr/td[contains(text(),'18')]"
  "//td[contains(string(),"18")]"
  </code></pre>
  
  <p>but I couldn't fetch the element.</p>
  
  <p>If I use CSS selector then it works fine. But as the date changes CSS path does not change automatically. It would be great help if I could fetch the element using Xpath and the value.</p>