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í.
Avatar
Døminik
Člen
Avatar
Døminik:27.10.2019 9:24

Ahoj, chtěl bych se pomocí Pythonu přihlásit na facebook a dále jít na můj profil.
To dělám pomocí Selenium. Přihlášení proběhne bez problému ale v příkazu pro kliknutí na můj profil (viz screen - ilustrační profil) je někde chyba. Vypisuje se mi:

selenium.common­.exceptions.E­lementClickIn­terceptedExcep­tion: Message: Element <div id="userNav" class="homeSi­deNav"> is not clickable at point (217,69) because another element <div class="_3ixn"> obscures it

Žádný element "_3ixn" ale nemohu najít.
Vždy se tam ale nabízí možnost od prohlížeče jestli chci povolit zasílání oznámení, což mě napadlo, že může být problémem.
Jak to mohu upravit aby to fungovalo?
Díky

**
Kód mám zde:**

from selenium import webdriver

driver = webdriver.Firefox()
driver.get("https://cs-cz.facebook.com/login/")

email = driver.find_element_by_id("email")
email.send_keys("MUJ MAIL")


password = driver.find_element_by_id("pass")
password.send_keys("MOJE HESLO")

login_tab = driver.find_element_by_id("loginbutton")
login_tab.click()

mujprofil = driver.find_element_by_id('userNav')
mujprofil.click()
 
Odpovědět
27.10.2019 9:24
Avatar
Døminik
Člen
Avatar
Døminik:27.10.2019 9:26

.

 
Nahoru Odpovědět
27.10.2019 9:26
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:29.10.2019 8:15

Neznam , nepouzivam. Nicmene, z kodu plyne, ze pracujes s html strankou. Takze si html stranku zobraz v prohlizeci a prohledni jeji zdrojovy kod nebo zdrojovy kod vyberu po ctrl+a (coz zobrazi kod i generovany javascriptem).

login_tab = driver.find_e­lement_by_id("lo­ginbutton")
login_tab.click()

No, ale, kdyz provedes na strance click, tak se cela stranka nacte znovu.

mujprofil = driver.find_e­lement_by_id('u­serNav')
mujprofil.click()

Takze nevim, zda zrovna takhle ziskas obsah nove stranky nebo se nepokousis najit element na druhe strance, ktery je na te prvni. Zkouknul bych ten kod, ale z nejakeho duvodu se cely FF zhrouti (nalogovany, ctrl+a, zobrazit zdrojovy kod vyberu, nic, nic, pad, zavreni, chybove hlasen :) )

 
Nahoru Odpovědět
29.10.2019 8:15
Avatar
Døminik
Člen
Avatar
Odpovídá na Peter Mlich
Døminik:29.10.2019 10:51

Úplně jsem nepochopil Váš poznatek.
Snažím se najít element, který je na druhé stránce tedy po přihlášení. Není to tedy tak jak píšete že je na jiné stránce.

 
Nahoru Odpovědět
29.10.2019 10:51
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:29.10.2019 13:14

Myslel jsem tim to, ze si zobraz obsah stranky, na ktere hledas elementy. Jestli tam vubec neco takoveho je.
Tez je mi divne, ze tam nemas zadnou cekaci dobu. Ono chvili trva, nez se stranka stahne a vetsina browseru pracuje asynchronne.
Tady je cast kodu, co jsem vygoogloval

try:
  print('Entering login details')
  email_field = self.browser.find_element_by_id('email')
  pass_field = self.browser.find_element_by_id('pass')
  email_field.send_keys(email)
  pass_field.send_keys(password)
  pass_field.submit()
  element_present = expected_conditions.presence_of_element_located((By.ID, 'userNavigationLabel'))
  WebDriverWait(self.browser, self.delay).until(element_present)
except TimeoutException:
  sys.exit('Login with your credentials unsuccessful')
 
Nahoru Odpovědět
29.10.2019 13:14
Avatar
Døminik
Člen
Avatar
Døminik:29.10.2019 16:13

A co patří místo userNavigationLabel a kam dát webdriver?

 
Nahoru Odpovědět
29.10.2019 16:13
Avatar
Neaktivní uživatel:14.1.2020 21:12

V žádném případě nedělej v normálním facebooku ale používej https://mbasic.facebook.com/

Na selenium je ideální ;) A nemusíš řešit tolik zbytečností..

Nahoru Odpovědět
14.1.2020 21:12
Neaktivní uživatelský účet
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 7 zpráv z 7.