C# týden November Black Friday
Black Friday je tu! Využij jedinečnou příležitost a získej až 80 % znalostí navíc zdarma! Více zde
Pouze tento týden sleva až 80 % na e-learning týkající se C#

Diskuze: Selenium - Element is not clickable because another element obscures it

Aktivity (2)
Avatar
Døminik
Člen
Avatar
Døminik:27. října 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. října 9:24
Avatar
Døminik
Člen
Avatar
Døminik:27. října 9:26

.

 
Nahoru Odpovědět
27. října 9:26
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:29. října 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. října 8:15
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Døminik
Člen
Avatar
Odpovídá na Peter Mlich
Døminik:29. října 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. října 10:51
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:29. října 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. října 13:14
Avatar
Døminik
Člen
Avatar
Døminik:29. října 16:13

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

 
Nahoru Odpovědět
29. října 16:13
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 6 zpráv z 6.