Я пишу общую библиотеку для настройки набора тестов автоматизации с веб-драйвером 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\)')]
Логически эту проблему можно решить, заменив )
на \)
для этого конкретного строкового литерала, но есть еще другие символы, которые нужно экранировать. Так есть ли какая-нибудь библиотека, чтобы сделать это должным образом?