Как выполнить итерацию по таблице с использованием selenium?

#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