1
votes

Comment se connecter à Openload.co en utilisant python sélénium?

J'essaie de me connecter à openload.co à l'aide du pilote python Selenium Chrome, mais j'obtiens l'erreur suivante:

Message: élément non interactif

J'utilise le code suivant et l'erreur se produit dans la dernière ligne du code où je ne peux pas envoyer les clés à la balise d'entrée.

from selenium import webdriver
path="path_to_chrome_driver"  #add chromedriver path
driver=webdriver.Chrome(path)
from selenium.webdriver.common.keys import Keys
driver.get('https://openload.co/login')
email = driver.find_element_by_xpath('//*[@id="loginform-email"]')
email.send_keys("example@xyz.com")

J'ai recherché le problème sur stackoverflow et j'ai atterri sur le lien suivant question similaire qui dit qu'il ne pointe probablement pas vers le correct xpath ou css_selector. Mais je n'arrive pas à le trouver. Qu'est-ce que je fais de mal ici?


0 commentaires

3 Réponses :


1
votes

Essayez de cliquer sur l'élément avant d'envoyer les clés.

driver.find_element_by_xpath('//*[@id="loginform-email"]').click()

Pour cette raison, le curseur sera actif sur le champ de la zone de texte de l'e-mail, l'élément devrait donc être interactif.

p >


3 commentaires

Salut, j'ai déjà écrit ce morceau de ligne dans ma 2ème dernière ligne du code. Voir au dessus


Désolé, j'ai manqué la méthode click () à partir de la fin de la ligne. Essayez de copier-coller celui-ci.


besoin d'ajouter cette ligne sigin = driver.find_element_by_class_name ("sign-in-button"). cl‌ ick () et maintenant ça marche. Merci pour votre temps :)



2
votes

C'est parce qu'il y a un modal dans le HTML rendu visible lorsque vous cliquez sur le bouton "Se connecter" en haut à droite. Il y a une duplication des identifiants. Pourriez-vous essayer de transmettre le mot de passe et le nom d'utilisateur comme ceci http: // nom d'utilisateur: password@openload.co/ ?

@john essaie ceci, ça marche pour moi:

driver.get('https://openload.co/login')
emails = driver.find_elements_by_xpath('//*[@id="loginform-email"]')
emails[1].send_keys("example@xyz.com")


3 commentaires

Donc, en gros, j'utilise openload.co/login qui n'a pas de problème de chargement de modèle. Mais j'ai essayé avec nom d'utilisateur: password@openload.co/ ? et cela n'a pas fonctionné.


Ouvrez la console développeur et actualisez la page. c'est le problème


Le problème est le modèle, il est mal conçu et reste caché à moins que l'on clique sur le bouton "se connecter".



1
votes

Il existe deux formulaires sur la page: le premier pour la connexion, le second pour la connexion. Les deux ont des champs de saisie avec les mêmes valeurs @id . Vous devez sélectionner le formulaire de connexion:

email = driver.find_element_by_xpath('//h1[.="Login"]/following::*[@id="loginform-email"]')
email.send_keys("example@xyz.com")


2 commentaires

Génial! Cela fonctionne aussi, pouvez-vous me dire comment avez-vous obtenu ce xpath pour le formulaire de connexion?


@johnmich, je n'utilise pas d'outils pour la génération XPath - juste créés par moi-même. Il existe de nombreux didacticiels pour apprendre XPath (comme this ou this )