Причина xpath: //*[contains(text(), "*${date}"*)]
не сработала в том, что xpath будет искать текст с буквенными звездочками. Вам не нужны звездочки, contains
позаботится об этом, потому что ищет запрашиваемую строку в любом месте текста элемента.
Вот пример использования contains
. Сначала сохраните следующее в /tmp/example.html:
<html><body>
<div><h1>Some text, January 1, 2020, and more text </h1>
</body></html>
Затем сохраните это в example.robot:
*** Settings ***
Library SeleniumLibrary
Suite Setup open browser ${URL} ${BROWSER}
Suite Teardown Close all browsers
*** Variables ***
${URL} file:///tmp/example.html
${BROWSER} chrome
${date} January 1, 2020
*** Test Cases ***
Example
Page should contain element xpath://*[contains(text(), "${date}")]
Когда вы запустите этот тест с роботом, он должен пройти, потому что элемент содержит строку, хранящуюся в ${date}
.