Preciso de ajuda, pois tenho que criar uma aplicação em C#, utilizando WindowsForm, que faça o seguinte:

Abra um browser, set valores para os campos de login e senha (existentes na página) e submeta a página. Após estar logado, preciso capturar os valores de alguns campos na página para persistir esses dados em banco.

A minha dúvida é se tem alguma biblioteca para fazer isso e como faria para capturar e setar valores para a página.

Existe alguma referência que eu possa utilizar para fazer esse tipo de manipulação?

Obrigado.

Exibições: 756

Respostas a este tópico

Pelo que entendi, você precisa de automatizar o Browser para realizar sozinho operações que um usuário faria via mouse e teclado.

Neste caso você pode usar o Selenium Web Driver. É uma biblioteca também disponível em C# que permite a você realizar testes e automatização de aplicações web.

O site oficial do selenium é https://code.google.com/p/selenium/

Descrição da API do Selenium:  http://selenium.googlecode.com/git/docs/api/dotnet/index.html

Você pode encontrar vários artigos e tutoriais sobre o assunto buscando no google. Boa sorte com sua aplicação.

Sim, Ulysses.

Vi que existe algumas bibliotecas como shdocvw e mshtml, porém não consegui manipular os valores dos campos existentes na página aberta.

Preciso fazer login e depois capturar os valores de um formulário preenchido.

Ulysses Alexandre Alves disse:

Pelo que entendi, você precisa de automatizar o Browser para realizar sozinho operações que um usuário faria via mouse e teclado.

Neste caso você pode usar o Selenium Web Driver. É uma biblioteca também disponível em C# que permite a você realizar testes e automatização de aplicações web.

O site oficial do selenium é https://code.google.com/p/selenium/

Descrição da API do Selenium:  http://selenium.googlecode.com/git/docs/api/dotnet/index.html

Você pode encontrar vários artigos e tutoriais sobre o assunto buscando no google. Boa sorte com sua aplicação.

Com o Selenium você consegue fazer isso. Ele deixa você selecionar os elementos da tela via "consultas" por ID, classe CSS, tags, etc. Você pode analisar o DOM, setar e obter valores, etc.

Minha sugestão, caso você for usar o Selenium, é que você crie os comandos via C# na seguinte ordem:

- Acesse a página de login

- Preencha os campos de login e senha

- Clique no botão de OK

- Aguarde a página carregar com o formulário

- Leia cada um dos campos do formulário e faça com os valores o que for necessário.

Essa seria a sequência de ações a serem executadas pelo seu código de automatização com o Selenium WebDriver. Basta criar uma classe e dentro dela métodos que chamem os comandos definidos pelo Selenium. É bastante simples. Basta dar uma lida em um tutorial que você faz tranquilo.



Wiliam de Souza Menezes disse:

Sim, Ulysses.

Vi que existe algumas bibliotecas como shdocvw e mshtml, porém não consegui manipular os valores dos campos existentes na página aberta.

Preciso fazer login e depois capturar os valores de um formulário preenchido.

Ulysses Alexandre Alves disse:

Pelo que entendi, você precisa de automatizar o Browser para realizar sozinho operações que um usuário faria via mouse e teclado.

Neste caso você pode usar o Selenium Web Driver. É uma biblioteca também disponível em C# que permite a você realizar testes e automatização de aplicações web.

O site oficial do selenium é https://code.google.com/p/selenium/

Descrição da API do Selenium:  http://selenium.googlecode.com/git/docs/api/dotnet/index.html

Você pode encontrar vários artigos e tutoriais sobre o assunto buscando no google. Boa sorte com sua aplicação.

Valeu, Ulysses...

Muito obrigado pela sua atenção e informações.

Abraço.


Ulysses Alexandre Alves disse:

Com o Selenium você consegue fazer isso. Ele deixa você selecionar os elementos da tela via "consultas" por ID, classe CSS, tags, etc. Você pode analisar o DOM, setar e obter valores, etc.

Minha sugestão, caso você for usar o Selenium, é que você crie os comandos via C# na seguinte ordem:

- Acesse a página de login

- Preencha os campos de login e senha

- Clique no botão de OK

- Aguarde a página carregar com o formulário

- Leia cada um dos campos do formulário e faça com os valores o que for necessário.

Essa seria a sequência de ações a serem executadas pelo seu código de automatização com o Selenium WebDriver. Basta criar uma classe e dentro dela métodos que chamem os comandos definidos pelo Selenium. É bastante simples. Basta dar uma lida em um tutorial que você faz tranquilo.



Wiliam de Souza Menezes disse:

Sim, Ulysses.

Vi que existe algumas bibliotecas como shdocvw e mshtml, porém não consegui manipular os valores dos campos existentes na página aberta.

Preciso fazer login e depois capturar os valores de um formulário preenchido.

Ulysses Alexandre Alves disse:

Pelo que entendi, você precisa de automatizar o Browser para realizar sozinho operações que um usuário faria via mouse e teclado.

Neste caso você pode usar o Selenium Web Driver. É uma biblioteca também disponível em C# que permite a você realizar testes e automatização de aplicações web.

O site oficial do selenium é https://code.google.com/p/selenium/

Descrição da API do Selenium:  http://selenium.googlecode.com/git/docs/api/dotnet/index.html

Você pode encontrar vários artigos e tutoriais sobre o assunto buscando no google. Boa sorte com sua aplicação.

Ulysses,

Comecei a fazer o projeto com o Selenium WebDriver como sugeriu, porém, após logar na página desejada, e, posteriormente, redirecionar para outra página, não consigo localizar os componentes dentro da página. Acho que ele continua referenciando a primeira página aberta.

Sem contar que quando ele efetua o login e faz outra ação ele já fecha a página, seria interessante mantê-la aberta. Sabe como fazer isso? Mê

dá uma força aí, por favor.

Ulysses Alexandre Alves disse:

Com o Selenium você consegue fazer isso. Ele deixa você selecionar os elementos da tela via "consultas" por ID, classe CSS, tags, etc. Você pode analisar o DOM, setar e obter valores, etc.

Minha sugestão, caso você for usar o Selenium, é que você crie os comandos via C# na seguinte ordem:

- Acesse a página de login

- Preencha os campos de login e senha

- Clique no botão de OK

- Aguarde a página carregar com o formulário

- Leia cada um dos campos do formulário e faça com os valores o que for necessário.

Essa seria a sequência de ações a serem executadas pelo seu código de automatização com o Selenium WebDriver. Basta criar uma classe e dentro dela métodos que chamem os comandos definidos pelo Selenium. É bastante simples. Basta dar uma lida em um tutorial que você faz tranquilo.



Wiliam de Souza Menezes disse:

Sim, Ulysses.

Vi que existe algumas bibliotecas como shdocvw e mshtml, porém não consegui manipular os valores dos campos existentes na página aberta.

Preciso fazer login e depois capturar os valores de um formulário preenchido.

Ulysses Alexandre Alves disse:

Pelo que entendi, você precisa de automatizar o Browser para realizar sozinho operações que um usuário faria via mouse e teclado.

Neste caso você pode usar o Selenium Web Driver. É uma biblioteca também disponível em C# que permite a você realizar testes e automatização de aplicações web.

O site oficial do selenium é https://code.google.com/p/selenium/

Descrição da API do Selenium:  http://selenium.googlecode.com/git/docs/api/dotnet/index.html

Você pode encontrar vários artigos e tutoriais sobre o assunto buscando no google. Boa sorte com sua aplicação.

Sim Wiliam.

Já passei por problemas parecidos com esse. O Selenium às vezes executa muito rápido, de forma que quando você tenta pegar o valor de um campo esse campo ainda nem existe na tela, ou nem foi preenchido ainda.

O que a gente fez nesses casos foi usar o WebDriverWaiter (uma propriedade do WebDriver) para esperar que o campo esteja presente na tela.

Tem vários comandos de espera, não me lembro de cor, porém são algo como WaitForElementPresent, WaitFor(alguma cláusula), esse tipo de coisa. Aí você monta a lógica que você precisa aguardar antes que o Driver continue a execução do teste.

Acho que assim vai dar certo pra você. Aí, por exemplo, se você precisa pegar o valor de um campo txtNome, antes de tentar ler o valor você coloca um comando pra esperar que o campo txtNome esteja presente na tela. Entendeu?

Wiliam de Souza Menezes disse:

Ulysses,

Comecei a fazer o projeto com o Selenium WebDriver como sugeriu, porém, após logar na página desejada, e, posteriormente, redirecionar para outra página, não consigo localizar os componentes dentro da página. Acho que ele continua referenciando a primeira página aberta.

Sem contar que quando ele efetua o login e faz outra ação ele já fecha a página, seria interessante mantê-la aberta. Sabe como fazer isso? Mê

dá uma força aí, por favor.

Ulysses Alexandre Alves disse:

Com o Selenium você consegue fazer isso. Ele deixa você selecionar os elementos da tela via "consultas" por ID, classe CSS, tags, etc. Você pode analisar o DOM, setar e obter valores, etc.

Minha sugestão, caso você for usar o Selenium, é que você crie os comandos via C# na seguinte ordem:

- Acesse a página de login

- Preencha os campos de login e senha

- Clique no botão de OK

- Aguarde a página carregar com o formulário

- Leia cada um dos campos do formulário e faça com os valores o que for necessário.

Essa seria a sequência de ações a serem executadas pelo seu código de automatização com o Selenium WebDriver. Basta criar uma classe e dentro dela métodos que chamem os comandos definidos pelo Selenium. É bastante simples. Basta dar uma lida em um tutorial que você faz tranquilo.



Wiliam de Souza Menezes disse:

Sim, Ulysses.

Vi que existe algumas bibliotecas como shdocvw e mshtml, porém não consegui manipular os valores dos campos existentes na página aberta.

Preciso fazer login e depois capturar os valores de um formulário preenchido.

Ulysses Alexandre Alves disse:

Pelo que entendi, você precisa de automatizar o Browser para realizar sozinho operações que um usuário faria via mouse e teclado.

Neste caso você pode usar o Selenium Web Driver. É uma biblioteca também disponível em C# que permite a você realizar testes e automatização de aplicações web.

O site oficial do selenium é https://code.google.com/p/selenium/

Descrição da API do Selenium:  http://selenium.googlecode.com/git/docs/api/dotnet/index.html

Você pode encontrar vários artigos e tutoriais sobre o assunto buscando no google. Boa sorte com sua aplicação.

Valeu mais uma vez, Ulysses...

Amanhã vou fazer o que você falou e depois posto o resultado aqui.

Espero que seja positivo.

Obrigado pela ajuda.

Ulysses Alexandre Alves disse:

Sim Wiliam.

Já passei por problemas parecidos com esse. O Selenium às vezes executa muito rápido, de forma que quando você tenta pegar o valor de um campo esse campo ainda nem existe na tela, ou nem foi preenchido ainda.

O que a gente fez nesses casos foi usar o WebDriverWaiter (uma propriedade do WebDriver) para esperar que o campo esteja presente na tela.

Tem vários comandos de espera, não me lembro de cor, porém são algo como WaitForElementPresent, WaitFor(alguma cláusula), esse tipo de coisa. Aí você monta a lógica que você precisa aguardar antes que o Driver continue a execução do teste.

Acho que assim vai dar certo pra você. Aí, por exemplo, se você precisa pegar o valor de um campo txtNome, antes de tentar ler o valor você coloca um comando pra esperar que o campo txtNome esteja presente na tela. Entendeu?

Wiliam de Souza Menezes disse:

Ulysses,

Comecei a fazer o projeto com o Selenium WebDriver como sugeriu, porém, após logar na página desejada, e, posteriormente, redirecionar para outra página, não consigo localizar os componentes dentro da página. Acho que ele continua referenciando a primeira página aberta.

Sem contar que quando ele efetua o login e faz outra ação ele já fecha a página, seria interessante mantê-la aberta. Sabe como fazer isso? Mê

dá uma força aí, por favor.

Ulysses Alexandre Alves disse:

Com o Selenium você consegue fazer isso. Ele deixa você selecionar os elementos da tela via "consultas" por ID, classe CSS, tags, etc. Você pode analisar o DOM, setar e obter valores, etc.

Minha sugestão, caso você for usar o Selenium, é que você crie os comandos via C# na seguinte ordem:

- Acesse a página de login

- Preencha os campos de login e senha

- Clique no botão de OK

- Aguarde a página carregar com o formulário

- Leia cada um dos campos do formulário e faça com os valores o que for necessário.

Essa seria a sequência de ações a serem executadas pelo seu código de automatização com o Selenium WebDriver. Basta criar uma classe e dentro dela métodos que chamem os comandos definidos pelo Selenium. É bastante simples. Basta dar uma lida em um tutorial que você faz tranquilo.



Wiliam de Souza Menezes disse:

Sim, Ulysses.

Vi que existe algumas bibliotecas como shdocvw e mshtml, porém não consegui manipular os valores dos campos existentes na página aberta.

Preciso fazer login e depois capturar os valores de um formulário preenchido.

Ulysses Alexandre Alves disse:

Pelo que entendi, você precisa de automatizar o Browser para realizar sozinho operações que um usuário faria via mouse e teclado.

Neste caso você pode usar o Selenium Web Driver. É uma biblioteca também disponível em C# que permite a você realizar testes e automatização de aplicações web.

O site oficial do selenium é https://code.google.com/p/selenium/

Descrição da API do Selenium:  http://selenium.googlecode.com/git/docs/api/dotnet/index.html

Você pode encontrar vários artigos e tutoriais sobre o assunto buscando no google. Boa sorte com sua aplicação.

Tem o watiN creio que seja mas fácil.

RSS

© 2019   Criado por Ramon Durães.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço