У меня есть некоторые HTML код:Regex в выражение XPath
<div>
<div id="order-1"></div>
<div id="order-2"></div>
</div>
Я хочу, чтобы найти все DIVs с идентификаторами 'порядка'. В Ruby я пытаюсь
divs = driver.find_elements :xpath, '//div[matches(@id, "order-[0-9]")]'
Но Селен дает ошибку
Selenium::WebDriver::Error::InvalidSelectorError: invalid selector: Unable to locate an element with the xpath expression //div[matches(@id, "order-[0-9]")] because of the following error: SyntaxError: Failed to execute 'evaluate' on 'Document': The string '//div[matches(@id, "order-[0-9]")]' is not a valid XPath expression.
Почему?
Параметр 'Функция matches' была введена в XPath 2.0 в 2007 году, но, к сожалению, многие реализации XPath остаются XPath 1.0 реализаций без поддержки этой функции и других, представленных в XPath 2.0. –
@MartinHonnen, thanx! Селен использовал XPath 1.0. Я пытаюсь // div [start-with (@id, 'order-')]. Это работает! –