Автозаполнение текстовых полей в системе Sieble CRM через webBrowser1 в С#

Есть ли у кого-нибудь опыт, как это сделать, если вы посмотрите на изображение, которое я ищу, чтобы программно изменить поле «Имя» на что-то еще, хранящееся в переменной из другого текстового поля.

я думал использовать что-то вроде

    private void button1_Click(object sender, EventArgs e)
    {
      var xBox = textbox1.value;

      webBrowser1.Document.All.GetElementsByName("Name")[0].SetAttribute("Value", xBox);
    }

но я не знаю, как называется текстовое поле, а Sieble кажется Java-вещью? так что я не могу видеть источник позади него? кто-нибудь знает, как решить эту проблему. Я делаю автоматизированное приложение, чтобы помочь на работе обрабатывать более 100 дел в день. Вместо того, чтобы вводить имена, я ищу решение для заполнения одним нажатием кнопки.

Я не могу справиться с этим с помощью sieble API, потому что у нас нет контроля над разработкой Siebel, и потребуются годы, чтобы отдел Sieble реализовал что-то подобное в графическом интерфейсе. поэтому я делаю настольное приложение, которое может решить эту проблему.

alt text


person Darkmage    schedule 10.11.2009    source источник


Ответы (3)


Похоже, вам нужно просто выполнить поиск по html (вручную), пока вы не найдете имена/идентификаторы полей, которые вам нужно установить.

Кроме того, если сайт поддерживает Firefox, попробуйте использовать Firebug. В режиме проверки Firebug вы можете навести указатель мыши на текстовое поле и получить его идентификатор.

person C. Ross    schedule 10.11.2009
comment
Уже пробовал это, но я написал. но я не знаю имени текстового поля, и это java-вещь, поэтому я не вижу источника, стоящего за ним, кто-нибудь знает, как решить эту проблему. - person Darkmage; 10.11.2009
comment
кажется, это какая-то java, да, источник, который я могу просматривать из копания, показывает соединение со многими файлами .js, поэтому я предполагаю, что представление, на которое я смотрю, основано на java, и когда я щелкаю правой кнопкой мыши по серой области на странице im получить другое меню, чем обычное меню IE... вид сверху похож на сетку данных? - person Darkmage; 11.11.2009
comment
Js - это javascript, вы можете его написать, но если это апплет, вам может не повезти... - person C. Ross; 11.11.2009
comment
это апплет, я отключил сценарий запуска апплета в настройках безопасности IE, и меню правой кнопки мыши исчезло. как насчет использования координат и имитации нажатия клавиш, ящики будут каждый раз в одних и тех же местах.. - person Darkmage; 11.11.2009
comment
Это можно сделать, но на тот момент я бы сказал, что это того не стоит, особенно в корпоративной среде. Пусть ваша команда Siebel сделает свою работу... - person C. Ross; 11.11.2009

Мое решение для этого заключалось в использовании координат и имитации нажатия клавиш, я использовал для этого глобальную библиотеку мыши и клавиатуры, найденную по этому адресу http://www.codeproject.com/KB/system/globalmousekeyboardlib.aspx

private void button1_Click(object sender, EventArgs e)
    {
        this.Location = new Point(0, 0);

        inputBlocker();
        xX = int.Parse(this.Location.X.ToString());
        yY = int.Parse(this.Location.Y.ToString());
        defaultMousePos();
        //Thread.Sleep(600);

       Cursor.Position = new Point(Cursor.Position.X + 1185, Cursor.Position.Y + 254);
       //Thread.Sleep(600);
       MouseSimulator.DoubleClick(MouseButton.Left);
       KeyboardSimulator.KeyPress(Keys.T);
       KeyboardSimulator.KeyPress(Keys.E);
       KeyboardSimulator.KeyPress(Keys.S);
       KeyboardSimulator.KeyPress(Keys.T);
       KeyboardSimulator.KeyPress(Keys.O);
       KeyboardSimulator.KeyPress(Keys.K);
       KeyboardSimulator.KeyPress(Keys.Enter);



       needUnblock = true;
       inputBlocker();

    }
person Darkmage    schedule 12.11.2009

@Darkmage - это приложение winforms? Если да, то у вас не было проблем с загрузкой элементов управления ActiveX siebel в элементе управления .NET webroswer?

person vanzylv    schedule 02.09.2010