2016-07-29 2 views
1

Я уже писал что-то вроде этого:Как получить число строк, где я мог бы найти определенное значение в RobotFramework?

Check privileges for PDTA 
    ${end}= Get Matching Xpath Count //*[@id="listForm:displayDataTable:tbody"]/tr 
    ${start}= Set Variable 0 
    : FOR ${index} IN RANGE ${start} ${end} 
    \ ${status}= Run Keyword And Ignore Error Element Should Contain listForm:displayDataTable:${index} su ${index} 

И выход журнала:

output.html

Как вы можете видеть, что я хочу, чтобы получить номер строки, где я мог бы найти значение ' су. Это значение можно найти в строке номера 6. Переменная $ {end} равна числу всех строк в таблице.

Кто-нибудь знает, как получить этот номер? Может быть, есть ключевое слово, которое может мне помочь, не так ли? Заранее спасибо !!!

+0

вы хотите вывести номер строки, где вы нашли 'su'? Это то, что вы говорите? – shicky

+0

Да, я хочу получить номер строки, где я нашел «su» – pingwin850

ответ

2
: FOR ${index} IN RANGE ${start} ${end} 
\ ${Name}= Get Text listForm:displayDataTable:${index} 
\ ${IsEqual}= Run Keyword And Return Status Should Be Equal ${Name} Su 
\ ${RowNumber}= Set Variable ${index} 
\ Run Keyword If '${IsEqual}'=='True' Run Keywords Log Rownumber is ${RowNumber} AND Exit For Loop 

U можете попробовать это.

Переменная $ {RowNumber} получает номер строки, которая имеет текст «Су».

+0

. Ваш ответ решил мой вопрос, спасибо! :) – pingwin850

+1

Будет ли только один ряд? Вышеупомянутое вызовет проблемы, если вы ожидаете кратные. Но чтобы справиться с этим, просто удалите выход из цикла for – shicky

+0

Да, это всегда будет одна строка. Это уникальная ценность. Мне нужно, чтобы номер строки нажал на определенную кнопку. Хорошо, спасибо за совет :) – pingwin850

0

В качестве части цикла FOR, я хотел бы добавить:

Run Keyword If '${status}' == 'PASS' Log ${index} 

Если вам нужно на самом деле использовать его тогда просто установить переменную или добавить в переменную список или что-то