Попытка заставить бота соединиться на разногласиях с Selenium Python - PullRequest
0 голосов
/ 05 декабря 2018

Попытка создать бота для соединения по диссонансу с Selenium Python: я пытался создать бота для соединения с моим диссонансом.

Необходимые импорты перечислены ниже:

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

Следующий код - мой сценарий, определяющий DiscordBot:

class DiscordBot:

def __init__(self, email, password):
    self.email = email
    self.password = password
    self.driver = webdriver.Firefox()

def closeBrowser(self):
    self.driver.close()      

def login(self):
    driver = self.driver
    driver.get("https://discordapp.com/login")
    browser = webdriver.Firefox()
    email = browser.find_element("register-email")
    email.send_keys("discordbot@icloud.com")
    password = browser.find_element("register-password")
    password.send_keys("my password")
    browser.find_element_by_name("login").click()
    time.sleep(2)

Однако моя проблема в том, что при запуске приведенного выше кода возникает следующая ошибка:

raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.InvalidArgumentException: 
Message: unknown variant `register-email`, expected one of `css selector`, `link text`,
`partial link text`, `tag name`, `xpath` at line 1 column 26

Ответы [ 2 ]

0 голосов
/ 05 декабря 2018

Я бы использовал CSS attribute = value селекторы для выбора нужных элементов.

email = driver.find_element_by_css_selector("[type=email]")
password = driver.find_element_by_css_selector("[type=password]")
driver.find_element_by_css_selector("[type=submit]").click()
0 голосов
/ 05 декабря 2018
  1. Вам не нужно определять browser (Firefox экземпляр), поскольку у вас уже есть driver (еще один Firefox экземпляр)
  2. Вам необходимо пройти тип селектора в качестве первого аргумента для find_element, например

    email = driver.find_element("name", "register-email")
    email = driver.find_element(value="register-email") # if your selector type is "id" (default type)
    
...