1
votes

Impossible de trouver l'élément par identifiant? Python de sélénium

J'essaie d'utiliser du sélénium sur ce site ( https://www.kijiji.ca /t-login.html )

voici le code que j'utilise

selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"[id="emailOrNickname"]"}

mais je continue de recevoir

driver=webdriver.Chrome(PATH)

driver.get("https://www.kijiji.ca/t-login.html")

driver.find_element_by_id("emailOrNickname")


3 commentaires

l'url n'est pas valide


L'utilisation de l'attribut name au lieu de id peut résoudre votre problème.


@madogan même problème,


4 Réponses :


1
votes

Essayez

from bs4 import BeautifulSoup
soup = BeautifulSoup(driver.page_source, 'html.parser')
soup.find_all('input', {'id': 'emailOrNickname'})`


2 commentaires

`` AttributeError: l'objet 'WebDriver' n'a pas d'attribut 'find_all' `` ``


Modifié, mais nécessite BeautifulSoup.



1
votes

Je pense que ce site Web détecte le sélénium. Parce que je peux accéder au site avec un navigateur normal, mais le sélénium ne montre rien à la page de connexion ou d'inscription. Vous devez le contourner si possible.


0 commentaires

1
votes

Il n'y a rien de mal avec votre code. Si vous regardez les en-têtes de réponse du site, vous verrez

driver.page_source

Ceci indique que le serveur pourrait être protégé par un pare-feu d'application Web.

Si vous inspectez ce que vous obtenez réellement du site Web en utilisant

server: rhino-core-shield

, vous verrez que vous n'obtenez pas réellement la page de connexion que vous attendiez, au lieu de cela, vous obtenez un tas horrible de Javascript qui redirigera vraisemblablement vers la vraie page de connexion. Le résultat est que la page de connexion de ce site Web particulier sera assez difficile d'accès par programme.


0 commentaires

0
votes

veuillez utiliser xpath suivant pour cliquer et envoyer les clés vers le champ d’e-mail

 driver=webdriver.Chrome(PATH)

driver.get("https://www.kijiji.ca/t-login.html")

driver.find_element_by_xpath("//input[@id="emailOrNickname"]");


0 commentaires