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")
4 Réponses :
Essayez
from bs4 import BeautifulSoup
soup = BeautifulSoup(driver.page_source, 'html.parser')
soup.find_all('input', {'id': 'emailOrNickname'})`
`` AttributeError: l'objet 'WebDriver' n'a pas d'attribut 'find_all' `` ``
Modifié, mais nécessite BeautifulSoup.
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.
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.
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"]");
l'url n'est pas valide
L'utilisation de l'attribut
nameau lieu de id peut résoudre votre problème.@madogan même problème,