Функция входа в систему для Selenium - PullRequest
0 голосов
/ 26 февраля 2020

Я пытаюсь войти на сайт "aminapps.com", но не могу выбрать имя для входа по электронной почте. До сих пор мне удавалось только заставить его открывать всплывающее окно с помощью кнопки входа на главной странице.

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

class AminoBot():
    def __init__(self,email,password):
        self.browser = webdriver.Firefox()
        self.email = email
        self.password = password


    def signIn(self):
        self.browser.get("https://aminoapps.com/")


        self.browser.find_element_by_xpath("/html/body/header/div/div/nav/ul/li[3]/a").click()
#        self.browser.find_element_by_css_selector("signin-email").click()
        try:
            element = WebDriverWait(self.browser, 100)
            self.browser.find_element_by_xpath("/html/body/div[2]/div[2]/div/div/div[2]/div[1]/div[1]/button[2]").click()
            emailInput = self.browser.find_element_by_xpath("/html/body/div[2]/div[2]/div/div/div[2]/div[1]/div[2]/form/div[1]/")
            passwordInput = self.browser.find_element_by_xpath("/html/body/div[2]/div[2]/div/div/div[2]/div[1]/div[2]/form/")
            emailInput.send_keys(self.email)
            passwordInput.send_keys(self.password)
            passwordInput.send_keys(Keys.ENTER)
            time.sleep(2)


        finally:
            webdriver.quit()



bot = AminoBot('justlogin@xyz.com','ABCDEFGH')
bot.signIn()

Пока я пробовал следующее, но безрезультатно.

1 Ответ

0 голосов
/ 27 февраля 2020

Чтобы щелкнуть по элементу с текстом Войдите по электронной почте , вам нужно WebDriverWait для element_to_be_clickable(), и вы можете использовать следующие Стратегии локатора :

  • xpath:

    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    
    driver.get('https://aminoapps.com/')
    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//a[@class='nav-link block pointer' and @data-popup='login']"))).click()
    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[@class='login-area']//button[@class='auth-btn signin-email']/i[@class='fa fa-envelope']"))).click()
    
  • Снимок браузера:

amino

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...