Ide para programação, 2 perguntas:

1. Ide para programação, 2 perguntas:

shoujo
shoujo

(usa Slackware)

Enviado em 26/07/2015 - 08:40h

Olá pessoal. Eu sempre quis desenvolver para linux, mas não consigo desenvolver em c, ou c++ em modo grafico, e o software que quero desenvolver gasta um webkit, para entrar numa pagina e fazer automatização.
Então to testando python, alias foi a primeira linguagem que eu tentei quando comecei a ter curiosidade por programação.

Fiz uma janela no glade, coloquei um Vpaned simples, e um navegador webkit dentro do Vpaned, agora preciso começar com manipualçao do webkit, então tenho 2 perguntas:

Vocês conhecem alguma IDE para python que faça automatização, quero tipo java, visualstudio, eclipse, que autocompleta as coisas pra mim, será que existe pra python?
Eu tentei a pycharm, mas essa não autocompleta D: ela so autocompleta os nomes das variaveis, alem de ser uma IDE muito pesada, se for assim prefiro o kate.

E a outra pergunta: sabem onde posso achar uma lista de funções do webkit gtk, preciso de uma lista de funções, como manipular eventos dentro do site, clicar em buttons, escrever textos em caixa de texto dentro do site aberto, etc.


  


2. Re: Ide para programação, 2 perguntas:

shoujo
shoujo

(usa Slackware)

Enviado em 26/07/2015 - 09:43h


estava olhando o seguinte site:
http://webkitgtk.org/reference/webkitgtk/stable/webkitgtk-webkitwebview.html

Mas nao consigo usar nenhum desses atributos que estão ai, todos retornam algum problema


3. Re: Ide para programação, 2 perguntas:

shoujo
shoujo

(usa Slackware)

Enviado em 26/07/2015 - 10:14h


depois de muita peleja eu descobri o seguinte:
texto = self.bro.get_main_frame().get_data_source().get_data()

self.bro <- variavel onde carrego o webview
get_main_frame().get_data_source().get_data() < isso captura o codigo da pagina

eu achei isso por um acaso, procurando no google em ingles, agora minha pergunta, como faço pra descobrir essas coisas?

eu tentei usar isso:

#!/usr/bin/python
import webkit
print webkit.WebView.__doc__


porem as funções que tem lá não tem nada parecido com isso, maioria das funções na documentação do webview são inuteis pra mim, eu preciso de varias coisas:
Uma que captura o codigo da pagina, uma que execute javascript na pagina, uma que insira texto em textbox, uma que marque opcao em um select, uma que faça funcao de click em buttons da pagina html, preciso de tudo isso.

Alguem sabe algum site com uma documentacao dos atributos para python webview?


4. Re: Ide para programação, 2 perguntas:

Oberaldo Büll Júnior
spylinux

(usa Manjaro Linux)

Enviado em 26/07/2015 - 10:38h

Já testou o Netbeans ou o Visual Studio Code?

https://code.visualstudio.com/

[]'s spylinux
Comunidade Manjaro Geek -www.manjaro-geek.org


5. Re: Ide para programação, 2 perguntas:

shoujo
shoujo

(usa Slackware)

Enviado em 26/07/2015 - 11:03h


hmm, netbeans parece ter um plugin, assim que eu encontrar o instalador vou tentar


6. Re: Ide para programação, 2 perguntas:

Thiago Henrique Hüpner
Thihup

(usa Manjaro Linux)

Enviado em 26/07/2015 - 11:05h

Em Python é simples.

Uma boa documentação nem eu achei, mas fui pelo que encontrei nos sites.
Novamente, vou recomendar este link, dê uma olhada mais a fundo nela: http://ernestocrespo.blogspot.com.br/2011/01/create-basic-web-browser-with.html

E para mostrar que é simples, olhe um exemplo:


#!/usr/bin/env python
# -*- coding: utf-8 -*-

import gtk
import webkit

def main(argv):

janela = gtk.Window(gtk.WINDOW_TOPLEVEL)
janela.set_default_size(800, 600)
janela.set_title(argv[0])
janela.connect("destroy",gtk.main_quit)

scroll = gtk.ScrolledWindow()

webView = webkit.WebView()

webView.open("http://www.google.com.br")

#print webView.__doc__

scroll.add(webView)

janela.add(scroll)

janela.show_all()
gtk.main()
return 0

if __name__ == '__main__':
import sys
sys.exit(main(sys.argv))



Espero ter ajudado

[]'s

T+

--
http://piadasnerds.com/wp-content/uploads/2011/08/grafico_souProgramador.png


7. Re: Ide para programação, 2 perguntas:

shoujo
shoujo

(usa Slackware)

Enviado em 26/07/2015 - 11:06h

Aproveitando vou fazer outra pergunta, alguem tem algum conhecimento em angular js?
Estou tentando criar um automatizador para um site, mas esse site usa angular js, atraves do webkit eu consegui carregar o site direitinho, eu até encontrei uma função nele que da pra executar um alert por exemplo, deu certinho, mas e agora? Como vou manipular elementos do tipo ng-model, e tals atraves de execução de scripts no python?


8. Re: Ide para programação, 2 perguntas:

shoujo
shoujo

(usa Slackware)

Enviado em 26/07/2015 - 11:09h


Vou dar um exemplo:
self.bro.execute_script("document.getElementById('mynickField').value='teste3'")

esse mynickField é um input veja o codigo dele:
<input class="arialreg12 ng-pristine ng-valid" style="color: #000000" type="text" id="mynickField" ng-model="turing.nick" placeholder="Digite seu apelido" maxlength="18" ng-change="clearNick();openCaptchaBox();validateNick();" tabindex="1">

usando meu codigo descrito acima, ele muda o valor em teoria, a gente ate vê o teste 3, mas na pratica ele so muda a informação na input mynickField, mas nao funciona, o site entende como se essa input estivesse vazia, pq ela provavelmente manda informação pra outro lugar.

Alguem tem alguma ideia de como resolver essas coisas?


9. Re: Ide para programação, 2 perguntas:

shoujo
shoujo

(usa Slackware)

Enviado em 26/07/2015 - 11:13h

Thihup, a maior dificuldade não é em acessar o site pelo webview eu ja implementei isso, inclusive usando programação pra objetos, e sim manipular os elementos do site, entrar no site é realmente simples..

Quero ver é conseguir manipular o que tem dentro dele, acrescentar coisas, dar clicks em buttons, e afins, mecher no site, e capturar informações.


10. Re: Ide para programação, 2 perguntas:

Thiago Henrique Hüpner
Thihup

(usa Manjaro Linux)

Enviado em 26/07/2015 - 11:21h

shoujo escreveu:

Thihup, a maior dificuldade não é em acessar o site pelo webview eu ja implementei isso, inclusive usando programação pra objetos, e sim manipular os elementos do site, entrar no site é realmente simples..

Quero ver é conseguir manipular o que tem dentro dele, acrescentar coisas, dar clicks em buttons, e afins, mecher no site, e capturar informações.



#!/usr/bin/env python
# -*- coding: utf-8 -*-

import gtk
import webkit

def load_finished(webView, frame):
#Aqui faz a "magica"
js = "document.getElementById('te').value='teste3'"
webView.execute_script(js)

def main(argv):

janela = gtk.Window(gtk.WINDOW_TOPLEVEL)
janela.set_default_size(800, 600)
janela.set_title(argv[0])
janela.connect("destroy",gtk.main_quit)

scroll = gtk.ScrolledWindow()

webView = webkit.WebView()

#Quando terminar de carregar ele chama a função do script
webView.connect("load-finished", load_finished)

webView.open("file:///tmp/vaco.html")
scroll.add(webView)

janela.add(scroll)

janela.show_all()
gtk.main()
return 0

if __name__ == '__main__':
import sys
sys.exit(main(sys.argv))



Espero ter ajudado

[]'s

T+

--
http://piadasnerds.com/wp-content/uploads/2011/08/grafico_souProgramador.png


11. Re: Ide para programação, 2 perguntas:

shoujo
shoujo

(usa Slackware)

Enviado em 26/07/2015 - 11:43h

Thihup escreveu:

shoujo escreveu:

Thihup, a maior dificuldade não é em acessar o site pelo webview eu ja implementei isso, inclusive usando programação pra objetos, e sim manipular os elementos do site, entrar no site é realmente simples..

Quero ver é conseguir manipular o que tem dentro dele, acrescentar coisas, dar clicks em buttons, e afins, mecher no site, e capturar informações.



#!/usr/bin/env python
# -*- coding: utf-8 -*-

import gtk
import webkit

def load_finished(webView, frame):
#Aqui faz a "magica"
js = "document.getElementById('te').value='teste3'"
webView.execute_script(js)

def main(argv):

janela = gtk.Window(gtk.WINDOW_TOPLEVEL)
janela.set_default_size(800, 600)
janela.set_title(argv[0])
janela.connect("destroy",gtk.main_quit)

scroll = gtk.ScrolledWindow()

webView = webkit.WebView()

#Quando terminar de carregar ele chama a função do script
webView.connect("load-finished", load_finished)

webView.open("file:///tmp/vaco.html")
scroll.add(webView)

janela.add(scroll)

janela.show_all()
gtk.main()
return 0

if __name__ == '__main__':
import sys
sys.exit(main(sys.argv))



Espero ter ajudado

[]'s

T+

--
http://piadasnerds.com/wp-content/uploads/2011/08/grafico_souProgramador.png



Thihup, acho que vc não entendeu direito meu problema.
essa função execute_script eu já tinha usado, mas não funciona, porque o site usa a framework angular js.
Eu também preciso simular cliques em buttons, não da pra fazer direito isso em javascript.

Em c# eu tinha varias opcoes mais interessantes, mas tb nao serviam para o framework angular js:
vou dar uns exemplos em c# para vc ver o que eu preciso:
Isso muda o que tem dentro de uma div
webBrowser1.Document.GetElementById("bloco_mensagem").InnerHtml = BlocoMsg;

Isso executa o click em um button
webBrowser1.Document.GetElementById("botao-enviar").InvokeMember("click");

Isso muda o valor de uma input
webBrowser1.Document.All.GetElementsByName("re")[0].SetAttribute("value", " ");

isso marca um select
webBrowser1.Document.All.GetElementsByName("ty")[0].SetAttribute("checked", "true");

e por ai vai, no webbrowser do c# eu tinha todas essas opções e mais.
Tem muuita coisa que nao da pra fazer via javascript, principalmente quando vc nao encontra uma id num elemento, muitos elementos é por nome, em javascript isso nao funciona direito, dependendo, e ainda afirmo, se o site usa angular js, tem vezes que o javascript nao consegue nem mudar a informação nos elementos.


12. Re: Ide para programação, 2 perguntas:

Thiago Henrique Hüpner
Thihup

(usa Manjaro Linux)

Enviado em 27/07/2015 - 10:03h

Olha, você tá insistente nisso...

Eu pesquisei um bocado e não achei nada equivalente em Python!

Pelo que ví, em C é possível, mas em Python ele não consegue pegar o elemento (página) para manipular, e como ainda é o Angulas JS complica mais ainda.

Fazer esse seu navegador tá complicado... (é para um trabalho de escola?)

Espero ter ajudado

[]'s

T+

--
http://piadasnerds.com/wp-content/uploads/2011/08/grafico_souProgramador.png



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts