2017-02-02 58 views
-1

У меня возникли проблемы с попыткой выяснить, почему доступ к строке 0, col 3 в таблице HTML не работает. Я использую C# и Visual Studio.Работа с проблемой при работе с доступом к индексу таблицы

При отладке, если мы позволяем ему проходить один раз, а затем возвращать его в ту же строку, что и захватить его как переменную, тогда это сработает. Но никогда в первый раз, если бы я отправился в строку 1, col 3, будучи следующей ячейкой вниз, он бы захватил ее и так далее с любыми другими, за исключением строки 1 (являющейся индексом 0).

Сегменты кода выглядят следующим образом, но мы не могли понять, почему он не работал специально в первой строке, мы даже попытались добавить задержку, чтобы убедиться, что страница полностью загружена и до сих пор не была возвращая любую ценность. Чтобы напомнить вам, он работал над каждой строкой, но первым, даже когда элемент в первой строке был изменен. Элемент в первой строке, четвертый столбец всегда будет меняться, поэтому нет конкретного класса или идентификатора, к которому я могу получить доступ каждый раз.

Любой ключ, почему он не работает для первой строки, и любые исправления были бы весьма признательны. У меня есть работа вокруг, но это будет просто легче сделать это следующим образом:

using Microsoft.VisualStudio.TestTools.UITesting.HtmlControls; 

    var browser = BrowserWindow.Launch("https://blah.com/"); 

    var cell = GetCell(browser, 2, 3); 

    Console.WriteLine(cell.Value.ToString()); 

    HtmlCell GetCell(UITestControl parent, int row, int column) 
      { 
       var cell = new HtmlCell(parent); 
       cell.SearchProperties.Add(HtmlCell.PropertyNames.RowIndex, row.ToString()); 
       cell.SearchProperties.Add(HtmlCell.PropertyNames.ColumnIndex, column.ToString()); 

       return cell; 
      } 
+0

Вы можете разместить образец HTML? Это может помочь выяснить, что происходит. – pmcilreavy

+0

Не могли бы вы поставить точку останова после строки 'var cell = GetCell (браузер, 0, 3);' (предполагая, что вы пытаетесь получить столбец строки 0), и посмотреть, какое значение возвращается, является ли оно нулевым или оно выбрасывает исключение? Также я не уверен, что строки начинаются с 0 или 1. –

+0

, поскольку я работаю для Intel, и такая информация конфиденциальна, я не могу @fallenidol. строки начинаются с 0, когда я проиндексирован как 1, он дал мне текст во второй строке. он возвратил null. он будет работать через все это, но вывод будет пустым, однако он отлично работает при доступе к 1, 3 или любой другой строке –

ответ

0

Аллен,

Вы можете убедиться, что строка заголовка вашей таблицы имеет тот же вид, остальные строки.

Вы правильно, что индексы строк начинаются с 0.

Вы можете попробовать создать метод отладки. Помните, что ячейка является дочерним элементом строки. Переходите в таблицу как родительский объект ui и итерации по каждой строке, затем итерации по каждой ячейке и посмотрите, что отладчик показывает вам как значения для этих объектов (включая их типы).

Мое подозрение, что это будет что-то делать со структурой заголовка или что элемент имеет другой тип объекта, чем скорее, чем HtmlCell