Я пишу общую библиотеку для настройки пакета тестирования автоматизации с помощью веб-драйвера Selenium 2.0 Python.
def verify_error_message_present(self, message):
try:
self.driver.find_element_by_xpath("//span[@class='error'][contains(.,'%s')]" % message)
self.assertTrue(True, "Found an error message containing %s" % message
except Exception, e:
self.logger.exception(e)
Я хотел бы экранировать сообщение перед передачей его в запрос XPath, чтобы оно могло поддерживать, если 'message' что-то типа "Количество используемых слотов памяти (32) превышает количество доступных слотов памяти (16) «
Без экранирования запрос xpath не будет работать, поскольку он содержит '(' и ')'
Какую библиотеку мы можем использовать для этого в Python?
Я знаю, что это простой вопрос, но у меня нет такого большого опыта работы с Python (только начался).
Заранее спасибо.
Дополнительная информация :
Во время тестирования в firebug, приведенный ниже запрос не даст результата:
//span[@class='error'][contains(.,'The number of memory slots used (32) exceeds the number of memory slots that are available (16)')]
В то время как запрос ниже вернет желаемый компонент:
//span[@class='error'][contains(.,'The number of memory slots used \(32\) exceeds the number of memory slots that are available \(16\)')]
Логически эту проблему можно решить, заменив )
на \)
для этого конкретного строкового литерала, но тогда все еще есть другие символы, которые необходимо экранировать. Так есть ли какая-нибудь библиотека, чтобы сделать это надлежащим образом?