Экранирование литерала XPath с помощью Python

Я пишу общую библиотеку для настройки набора тестов автоматизации с веб-драйвером 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\)')]

Логически эту проблему можно решить, заменив ) на \) для этого конкретного строкового литерала, но есть еще другие символы, которые нужно экранировать. Так есть ли какая-нибудь библиотека, чтобы сделать это должным образом?

6
задан muhuk 10 August 2011 в 01:59
поделиться