Перейти к содержимому

Фотография

Как проскролить таблицу


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 8

#1 julia.ap

julia.ap

    Новый участник

  • Members
  • Pip
  • 23 сообщений

Отправлено 27 января 2009 - 08:35

Доброго времени суток!

ТС 6.51, Дельфи-скрипт, веб

Суть в следующем: есть таблица, у которой два скролбара - вниз и в сторону. Причем эти скролбары не вычленяются Object Explorer'ом.
получается, я могу найти только объект следующего вида:
Sys.Process('iexplore').Page(ляляля=').Panel('section_ref').Table(0).Cell(1, 0).Panel(0)
Прокрутить вниз эту таблицу я могу с помощью MouseWheel, а вот в сторону никакой wPosition не помогает (потому что скролбара как бы нет), нажимать 20 раз Keys('[ Left ]') тоже не очень прикольно.
Как быть, кто сталкивался?
  • 0

#2 Dmitry N

Dmitry N

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 742 сообщений
  • ФИО:Николаев Дмитрий
  • Город:Где-то в России

Отправлено 27 января 2009 - 09:29

Здравствуйте.

Учитывая то, что вы работаете с веб приложением, понять какой у вас scroll bar и как с ним работать невозможно, так как все контролы на веб страницах это просто набор тэгов. Попробуйте записать скрипт, который перетаскивает этот scroll bar из одной позиции в другую, и запостите его сюда.
  • 0
С уважением,
Дмитрий

#3 julia.ap

julia.ap

    Новый участник

  • Members
  • Pip
  • 23 сообщений

Отправлено 28 января 2009 - 09:34

Здравствуйте.

Учитывая то, что вы работаете с веб приложением, понять какой у вас scroll bar и как с ним работать невозможно, так как все контролы на веб страницах это просто набор тэгов. Попробуйте записать скрипт, который перетаскивает этот scroll bar из одной позиции в другую, и запостите его сюда.


Вот прокрутка вниз и вверх, а потом перетаскивание скролбара в стороны (промежая кликами по таблице):
procedure Test1;
  var p1 : OleVariant;
  var w1 : OleVariant;
  var w2 : OleVariant;
  var w3 : OleVariant;
begin
  p1 := Sys.Process('iexplore');
  p1.IEFrame(1).Tab(Microsoft Internet Explorer предоставлен: ').Window('Shell DocObject View').Window('Internet Explorer_Server').MouseWheel(-5);
  Delay(3400);
  w1 := p1.Page('http://ляляля).Fieldset('fs_searchResults').Panel('div_searchResults').Panel('depo_acc_ref').Table(0).Cell(1, 0).Panel(0);
  w2 := w1.Panel(0).Table(0);
  w3 := w2.Cell(4, 0);
  w3.Click(84, 7);
  w3.MouseWheel(-3);
  Delay(1428);
  w3.MouseWheel(4);
  Delay(1353);
  w3.MouseWheel(-5);
  Delay(5405);
  w2.Cell(5, 0).Click(82, 7);
  Delay(2883);
  w1.Drag(1033, 235, 3, -93);
  Delay(2789);
  w1.Drag(1037, 138, -6, 76);
  w2.Cell(6, 0).Click(83, 11);
  Delay(4144);
  w1.Drag(696, 297, 198, 5);
  Delay(3151);
  w1.Drag(910, 300, -276, 1);
end;

Как видно, Panel(0) - все что можно подвигать.
  • 0

#4 Dmitry N

Dmitry N

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 742 сообщений
  • ФИО:Николаев Дмитрий
  • Город:Где-то в России

Отправлено 28 января 2009 - 12:51

Здравствуйте.

А запостите теперь, пожалуйста, результаты следующего скрипта в формате MHT. Этот скрипт запостит часть HTML кода вашей страницы, возможно это подскажет нам решение. Не забудьте поправить скрипт, чтобы он ссылался на правильные объекты.

procedure Test1;
  var p1 : OleVariant;
  var w1 : OleVariant;
  var w2 : OleVariant;
  var w3 : OleVariant;
begin
  p1 := Sys.Process('iexplore');
  p1.IEFrame(1).Tab(Microsoft Internet Explorer предоставлен: ').Window('Shell DocObject View').Window('Internet Explorer_Server').MouseWheel(-5);
  Delay(3400);
  w1 := p1.Page('http://ляляля).Fieldset('fs_searchResults').Panel('div_searchResults').Panel('depo_acc_ref').Table(0);
  Log.Message(w1.FullName, w1.outerHTML);
end;

  • 0
С уважением,
Дмитрий

#5 julia.ap

julia.ap

    Новый участник

  • Members
  • Pip
  • 23 сообщений

Отправлено 30 января 2009 - 10:48

Здравствуйте.

А запостите теперь, пожалуйста, результаты следующего скрипта в формате MHT. Этот скрипт запостит часть HTML кода вашей страницы, возможно это подскажет нам решение. Не забудьте поправить скрипт, чтобы он ссылался на правильные объекты.


Сделала, но ничего в полученном коде не нашла. Программисты говорят, что скролбар генерит сам браузер, и что его никак не выцепить. Даже не знаю, как двигать то теперь таблицу в стороны...
  • 0

#6 Dmitry N

Dmitry N

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 742 сообщений
  • ФИО:Николаев Дмитрий
  • Город:Где-то в России

Отправлено 30 января 2009 - 11:16

Здравствуйте.

А может пример страницы сможете дать?
  • 0
С уважением,
Дмитрий

#7 julia.ap

julia.ap

    Новый участник

  • Members
  • Pip
  • 23 сообщений

Отправлено 17 марта 2009 - 14:58

Здравствуйте.

А может пример страницы сможете дать?



Совсем заработалась :)

Я не знаю, как я могу дать пример страницы. Обычная таблица (точнее много вложенных Table и Panel). Браузер (ИЕ7) автоматически генерит скробар - если много столбцов или растягиваю столбцы вширь.
  • 0

#8 Dmitry N

Dmitry N

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 742 сообщений
  • ФИО:Николаев Дмитрий
  • Город:Где-то в России

Отправлено 18 марта 2009 - 06:15

Здравствуйте.

Если это полоса прокрутки самого Internet Explorer'а, то ТС должен автоматически прокручивать страницу при попытке сделать что-нибудь с объектом, который находится в невидимой части. Если вам надо сделать объект видимым, но никаких действий вы с ними делать не хотите, то можете позвать метод scrollIntoView с параметром false (или true, здесь неважно) этого объекта.
  • 0
С уважением,
Дмитрий

#9 Dmitry N

Dmitry N

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 742 сообщений
  • ФИО:Николаев Дмитрий
  • Город:Где-то в России

Отправлено 18 марта 2009 - 06:18

Здравствуйте.

Если это полоса прокрутки самого Internet Explorer'а, то ТС должен автоматически прокручивать страницу при попытке сделать что-нибудь с объектом, который находится в невидимой части. Если вам надо сделать объект видимым, но никаких действий вы с ними делать не хотите, то можете позвать метод scrollIntoView с параметром false (или true, здесь неважно) этого объекта.
  • 0
С уважением,
Дмитрий


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных