IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Automatické přihlašování s webdriver

Aktivity
Avatar
Døminik
Člen
Avatar
Døminik:24.1.2019 22:13

Ahoj, chtěl bych naprogramovat automatické přihlášení k mému účtu na systému školy, jelikož se automaticky odhlašuje a docela často ho potřebuji. Kód dělám v Pythonu, použil jsem k tomu Selenium a webdriver Firefoxu: geckodriver-v0.23.0-win64.zip.
Když zadám svoje jméno a heslo, normálně se mi vepíše do příslušných políček, ale poté se již nezmáčkne enter (což by vedlo k přihlášení), ani není akceptováno kliknutí na kolonku přihlásit se.

Myslím, že problém bude u webdriveru, co jiného myslíte, že bych měl použít?
Díky
Lukáš

from selenium import webdriver
driver = webdriver.Firefox()
driver.get("https://mail.skola.cz/")

name = driver.find_element_by_id("…")
name.send_keys("hajek.lukas")

password= driver.find_element_by_id("…")
password.send_keys("moje_heslo").send_keys(Keys.ENTER)

prihlasit = driver.find_element_by_value("přihlásit")
prihlasit.click()
Editováno 24.1.2019 22:14
 
Odpovědět
24.1.2019 22:13
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:25.1.2019 15:54

formular v js se odesila form.submit();

Za prepodkladu, ze to skutecne nejaky element najde, ze treba neni problem diakritika, spatne kodovani, tak by to melo fungovat

prihlasit = driver.find_element_by_value("přihlásit")
prihlasit.click()

Muzes zkusit treba hledat input type=submit nebo podle name formulate a zkusit click, submit. Pripadne bych sel pres google
google = geckodriver form submit python

search_form = browser.find_element_by_id('search_form_input_homepage')
search_form.send_keys('real python')
search_form.submit()

opts = Option()
opts.set_headless()
browser = Firefox(options=opts)
browser.get('https://bandcamp.com')
browser.find_element_by_class('playbutton').click()\

google = geckodriver form submit python example
https://selenium-python.readthedocs.io/…started.html

elem = driver.find_element_by_name("q")
elem.clear()
elem.send_keys("pycon")
elem.send_keys(Keys.RETURN) ---- tady treba odesilaji returnem, coz je jiny nazev pro enter
 
Nahoru Odpovědět
25.1.2019 15:54
Avatar
Døminik
Člen
Avatar
Odpovídá na Peter Mlich
Døminik:27.1.2019 21:32

Píši kód v Pythonu a napsal jsem ho tak trochu ilustračně.
Čistě je zde, ale také nefunguje:

from selenium import webdriver

driver = webdriver.Firefox()
driver.get("https://www.gymkren.cz/isas/prihlasit.php")

jmeno = driver.find_element_by_name("login-isas-username")
jmeno.send_keys("petr.dominik")

heslo = driver.find_element_by_name("login-isas-password")
heslo.send_keys("abcd1234").send_keys(Keys.ENTER)

klik_prihlasit = driver.find_element_by_name("login-isas-send")
klik_prihlasit.click()
klik_prihlasit.send_keys(Keys.RETURN)
 
Nahoru Odpovědět
27.1.2019 21:32
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.