int count = getXPathCount( "//input[@type='button']" );
String names[] = new String[count];
for( int i = 0; i < count; i++ ){
names[i] = getAttribute( "xpath=(//input[@type='button'])[" + ( i + 1 ) + "]@value" );
// Yes, author knows about getValue, but it's general case and some other attribute may be in use
}
Если не ошибаюсь, то в случае если искомого атрибута в объекте не будет, то вывалится exception. Так что придется быть осторожным и учитывать это в своем коде... Вот.
И еще, для получения текста внутри элемента есть метод:
getText("xpath=(//a)[10]") - возвращает текст ссылки с индексом 10.
Кстати, для input type=button этот метод вернет в лучшем случае пустую строку, насколько я помню. getText возвращает текст между открывающимся и закрывающимся тегами указанного элемента.
KaNoN, а вы не знаете можно ли как-нибудь(не в ручную) получить путь до <input type=button value='some_text' />, не зная его атрибутов?
Некоторые атрибуты так или иначе присутствуют в любом случае. Например, практически для всех элементов input задан атрибут type. Если он не задан явно, то по умолчанию type=text. То есть, переборку по данным элементам можно делать "не глядя".
В случае <input type=button value='some_text' /> атрибуты могут даже определяться просто глядя на этот элемент на странице. Например, если элемент - кнопка, то текст, отображаемый в кнопке, задается атрибутом value. Тут нужно знать, как устроен ХТМЛ ( если с этим трудно, то я рекомендую уделить этому внимание, так как подобные знания очень полезны для задач автоматизации ).
Просто надо понимать, какие атрибуты у элементов, как правило, присутствуют в обязательном порядке. Тогда вручную смотреть не надо.
Более тонкая настройка с копанием атрибутов нужна, когда нужно перебрать не все элементы, а некоторое их подмножество.