#selenium-rc
#selenium-rc
Вопрос:
У меня есть таблица под названием UserManagement, которая содержит информацию о пользователе.Эта таблица обновляется всякий раз, когда создается новый пользователь. Если я создаю двух пользователей, то мне нужно проверить, действительно ли созданы два пользователя или нет. Таблица содержит ID, имя пользователя, FirstName, LastName, Bdate..ctc. Здесь идентификатор будет сгенерирован автоматически.
Я запускаю скрипт Selenium-TestNG.Используя Selenium, как я могу получить имя пользователя двух пользователей, которых я создал? Должен ли я выполнять итерацию по таблице? Если да, то как выполнить итерацию по таблице?
Ответ №1:
Используйте ISelenium.GetTable (строка), чтобы получить содержимое ячеек таблицы, которые вы хотите. Например, selenium.GetTable("UserManagement.0.1");
вернет содержимое первой строки и второго столбца таблицы. Затем вы могли бы утверждать, что правильное имя пользователя или юзернеймы отображаются в таблице.
Комментарии:
1. Я попробовал то же самое, используя его в цикле как selenium. GetTable(«UserManagement.i.1»), где я хочу выполнить итерацию по циклу, но это не сработает .. вместо этого selenium. GetTable(«UserManagement.0.1») это работает.. Есть идеи, почему
2. @sam какие значения i вы перебираете?
3. следующее, что я пытаюсь сделать, — это счетчик numof строк. Для i Как Integer = 1 В NumOfRows Dim strTableColumn Как String = selenium. GetTable(«Group.i.1») If (strTableColumn = pword) Затем returnValue = i isFound = True Завершает работу, если Следующий
4. @sam похоже, у вас есть 2 проблемы: вы начинаете с 1 вместо 0, и вам нужно использовать конкатенацию строк для построения локатора
"Group." i ".1"
вместо"Group.i.1"
Ответ №2:
Получить количество строк с помощью Selenium.getxpathcount(@id = fjsfjtdtr») в переменной rowcount
Укажите columncount в переменной
Пример:
int colcount = 5;
Укажите запрос, т.е. нового пользователя
String user1 = "ABC"
for(i = 0;i <=rowcount;i )
{
for(j=0;j<=colcount;j )
{
if (user1==selenium.gettable("//@[id=dldl/tbody" i "td" j))
{
system.out.println(user1 "Inserted");
break;
}
break;
}
}
Комментарии:
1. Я попробовал использовать то же решение, которое вы предоставляете. Но xpath не принимает i (счетчик), вместо этого, если вы используете статическую строку, это не работает. Любое другое возможное решение
Ответ №3:
Получить количество строк, используя:
int noOfRowsInTable = selenium.getXpathCount("//table[@id='TableId']//tr");
Если имя пользователя, которое вы хотите получить, находится в фиксированной позиции, скажем, на 2-й позиции, то для каждой строки выполните итерацию, как указано ниже:
selenium.getText("xpath=//table[@id='TableId']//tr//td[1]");
Примечание: мы можем найти количество столбцов в этой таблице, используя ту же процедуру
int noOfColumnsInTable = selenium.getXpathCount("//table[@id='TableId']//tr//td");
Ответ №4:
В общем, что-то вроде этого?
table = @browser.table(:id,'tableID')
table.rows.each do |row|
# perform row operations here
row.cells.each do |cell|
# do cell operations here
end
end