Я новичок в кодировании и пытаюсь написать www.open.spotify.com средство проверки аккаунта для веб-плеера spotify с python и селеном.
Я получил python для входа и выхода с этим кодом ; (причина использования xpath в некоторых случаях заключается в том, что в этих случаях нет идентификатора элементов в HTML)
...
import
import time
from selenium.webdriver.common.by
import By
from selenium.webdriver.support.ui import
WebDriverWait
from selenium.webdriver.support import
expected_conditions as ec
import random
from selenium import webdriver
from
selenium.common.exceptions
import NoSuchElementException
from selenium.webdriver.chrome.options
import Options
import os
код
while True:
startTime = time.asctime(time.localtime(time.time()))
print('\n')
usernamelist = 'example@email.com'
passwordstr2 = 'password'
browser = webdriver.Chrome()
browser.maximize_window()
browser.get('https://accounts.spotify.com/en/login?continue=https:%2F%2Fopen.spotify.com%2F')
wait = WebDriverWait(browser, 5)
wait.until(ec.visibility_of_element_located((By.ID, "login-username")))
wait.until(ec.visibility_of_element_located((By.ID, "login-password")))
wait.until(ec.visibility_of_element_located((By.ID, "login-button")))
k = browser.find_element_by_xpath('//*[@id="app"]/body/div[1]/div[2]/div/form/div[3]/div[1]/div/label/span').click()
# log in chrome 1
username = browser.find_element_by_id('login-username')
choice_name = (random.choice(usernamelist))
username.send_keys(choice_name)
print(choice_name)
password = browser.find_element_by_id('login-password')
password.send_keys(passwordstr2)
time.sleep(5)
login_Button = browser.find_element_by_id('login-button')
login_Button.click()
time.sleep(25)
drop_user_ = browser.find_element_by_xpath('//*[@id="main"]/div/div[3]/div[1]/header/div[4]/button/span[2]')
time.sleep(15)
drop_user_.click()
time.sleep(10)
logout = browser.find_element_by_xpath('//*[@id="main"]/div/div[3]/div[1]/header/div[4]/ul/li[3]')
time.sleep(15)
logout.click()
time.sleep(5)
print('account', choice_name, 'verified')
print('logged out')
browser.quit()
endTime = time.asctime(time.localtime(time.time()))
print("process started at: ", '\n', startTime)
print("Process ended at: ", '\n', endTime)
...
Но если мое имя пользователя или пароль неверны, оно останавливается, и я получаю ошибку (NosuchElementException), ведьма должна ожидать, конечно, потому что, если учетные данные не верны chrome не пропустит страницу входа, а значит не найдет drop_user.
Я получил этот код:
код
while True:
startTime = time.asctime(time.localtime(time.time()))
print('\n')
usernamelist = 'example@email.com'
passwordstr2 = 'password'
browser = webdriver.Chrome()
browser.maximize_window()
browser.get('https://accounts.spotify.com/en/login?continue=https:%2F%2Fopen.spotify.com%2F')
wait = WebDriverWait(browser, 5)
wait.until(ec.visibility_of_element_located((By.ID, "login-username")))
wait.until(ec.visibility_of_element_located((By.ID, "login-password")))
wait.until(ec.visibility_of_element_located((By.ID, "login-button")))
k = browser.find_element_by_xpath('//*[@id="app"]/body/div[1]/div[2]/div/form/div[3]/div[1]/div/label/span').click()
# log in chrome 1
username = browser.find_element_by_id('login-username')
choice_name = (random.choice(usernamelist))
username.send_keys(choice_name)
print(choice_name)
password = browser.find_element_by_id('login-password')
password.send_keys(passwordstr2)
time.sleep(5)
login_Button = browser.find_element_by_id('login-button')
login_Button.click()
time.sleep(25)
if browser.find_element_by_xpath('//*[@id="app"]/body/div[1]/div[2]/div/div[2]/div/p/span'):
print('account', choice_name, 'not verified')
browser.quit()
else
drop_user_ = browser.find_element_by_xpath('//*[@id="main"]/div/div[3]/div[1]/header/div[4]/button/span[2]')
time.sleep(15)
drop_user_.click()
time.sleep(10)
logout = browser.find_element_by_xpath('//*[@id="main"]/div/div[3]/div[1]/header/div[4]/ul/li[3]')
time.sleep(15)
logout.click()
time.sleep(5)
print('account', choice_name, 'verified')
print('logged out')
browser.quit()
endTime = time.asctime(time.localtime(time.time()))
print("process started at: ", '\n', startTime)
print("Process ended at: ", '\n', endTime)
...
для перезапуска l oop, если используются неверные учетные данные для входа, но если в этом случае мои имя пользователя или пароль верны, я получаю сообщение об ошибке, так как не находит этот элемент:
browser.find_element_by_xpath('//*[@id="app"]/body/div[1]/div[2]/div/div[2]/div/p/span')
(python не найдет мой оператор if и прерывает время True l oop)
Мой вопрос:
Я хочу, чтобы код продолжался, когда учетные данные для входа в систему недействительны или действительны.
1- Я хочу, чтобы мои действительные и недействительные учетные данные были в отдельном текстовом файле. #notepad
(файл 1.txt для учетных записей, которые я хотел бы проверить.)
(Файл 2.txt для учетных записей, которые являются недействительными.)
Как Я делаю это ? Ответьте с полным кодом, пожалуйста.
2 - Я хотел бы запустить этот скрипт 24/7 на сервере AWS .amazon.com ubuntu.
Какой-нибудь специальный код в моем необходим для этого?
Любая помощь / ответы приветствуются!
Заранее спасибо.