1
votes

Rechercher des éléments par type d'entrée

J'essaye Python et Selenium. Mon objectif est de me connecter à Discord ( https://discordapp.com/login . Mais voici le problème . Je n'arrive pas à faire cocher la case e-mail et mot de passe. Mais le pire, c'est d'essayer de sélectionner une zone de texte sur un serveur ... J'ai tout essayé, même la localisation par XPath, mais je n'arrive pas à faire les choses correctement . De plus, le faire sur ATOM n'est probablement pas la meilleure idée car je ne reçois aucun message d'erreur: P. Voici un extrait de code pour sélectionner la boîte de texte de l'e-mail.

from selenium
import webdriver
from selenium.webdriver.common.keys
import Keys

browser = webdriver.Firefox()

browser.get('https://discordapp.com/login')
assert 'discordapp' in browser.title

elem = browser.find_element_by_name('textarea')# this is the part where i need help
elem.send_keys('test' + Keys.ENTER)

 Le code source


1 commentaires

Vous devez inclure le code HTML pertinent dans votre message sous forme de texte, afin que les utilisateurs aveugles et ayant besoin de lecteurs d'écran puissent le voir également. Cela aide également les moteurs de recherche à le récupérer pour les futurs téléspectateurs. Évitez les photos si possible!


3 Réponses :


5
votes

Pour les e-mails, ce sélecteur css devrait fonctionner:

browser.get("https://discordapp.com/login")


elem = browser.find_element_by_css_selector("input[type='email']")# this is the part where i need help
elem.send_keys("itsolidude@imail.com")

elem1 = browser.find_element_by_css_selector("input[type='password']")# this is the part where i need help
elem1.send_keys("password")    

login_button = browser.find_element_by_xpath("//div[text()='Login']/parent::button")
login_button.click() 

Pour le mot de passe:

input[type='password']

J'ai testé ce code: p >

input[type='email']

Cela a bien fonctionné sur ma machine.


4 commentaires

ou il peut essentiellement essayer de trouver des éléments en utilisant Xpath / CssSelector :) Mais bonne réponse (je ne savais pas qu'il était possible de rechercher des éléments comme celui-ci)


@cruisepandey bizarre, cela ne charge que la page de connexion pour moi mais toujours pas de saisie de texte: /


Avez-vous rencontré une erreur / une exception? Si tel est le cas, veuillez mettre à jour ici. FYI, je n'ai pas écrit de code pour cliquer sur le bouton de connexion, je ne sais pas si cela aide. Mise à jour du code avec le bouton de connexion également.


@cruisepandey j'ai mis à jour le code pour appuyer sur Entrée ... mais toujours rien



0
votes

vous devez vérifier le conteneur div et les ajouter dans le xpath.

Essayez le code suivant et veuillez déboguer les retraits, au cas où le stackoverflow ne les transfère pas correctement (enfin, je ne sais pas comment le faire correctement et correctement.)

from selenium import webdriver
from selenium.webdriver.common.by import By
import time

class loginPage():

    def test(self):
    baseUrl = 'https://discordapp.com/login'
    driver = webdriver.Firefox(executable_path="G:\\webdriver/geckodriver.exe")
    driver.maximize_window()
    driver.implicitly_wait(5)
    driver.get(baseUrl)

    mail = driver.find_element(By.XPATH, "//div[3]/div[1]/div/input[contains(@type,'email')]")
    time.sleep(5)
    mail.send_keys("test@gmail.com")
    time.sleep(3)
    print("Enter mail adress")

    password = driver.find_element(By.XPATH, "//div[3]/div[2]/div/input[contains(@type,'password')]")
    time.sleep(5)
    password.send_keys("123456789")
    time.sleep(3)
    print("Enter password")
    time.sleep(10)
    driver.quit()

ff = loginPage()
ff.test()


0 commentaires

0
votes

Connectez-vous au site Web Discord en utilisant Python et Selenium:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select

driver = webdriver.Chrome()

driver.get("https://discord.com/login")
time.sleep(6)

username_input = driver.find_element_by_name('email')
username_input.send_keys("enter-your-username-here")


password_input = driver.find_element_by_name('password')
password_input.send_keys("Enter-your-password-here")


login_button = driver.find_element_by_xpath('//*[@id="app-mount"]/div[2]/div/div[2]/div/div/form/div/div/div[1]/div[3]/button[2]')
login_button.click()


0 commentaires