Это невозможно при использовании API Selenium 1, однако вы можете вызвать JavaScript, который будет находить элементы, используя XPath //td[contains(@id, "subject_")]
, если subject_
всегда присутствует в сгенерированном идентификаторе.Я не уверен, обеспечивает ли браузер Selenium поддержку XPath для IE, поэтому вы можете ограничиться браузерами, которые имеют встроенную поддержку.В Firefox это будет:
var tds = document.evaluate("//td[contains(@id, \"subject_\")]", document, null,
XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
for ( var i = 0; i < tds.snapshotLength; i++) {
var td = tds.snapshotItem(i);
// get text using td.textContent and add it to array or whatever...
// and return it
}
return ...
Вам нужно будет объявить этот скрипт как строку в вашем коде и выполнить через selenium.getEval
Однако, если вы сможете переключиться на Selenium 2 (WebDriver) , вы можете использовать его API.Вам нужно будет использовать findElementsBy
, передающий XPath //td[contains(@id, "subject_")]
, а затем пройтись по возвращенному массиву совпадений и получить текст каждого элемента