Невозможно автоматизировать публикации в Facebook, проблема с написаниемPython

Программы на Python
Ответить
Anonymous
 Невозможно автоматизировать публикации в Facebook, проблема с написанием

Сообщение Anonymous »

Я пишу код для автоматизации множества публикаций на многих страницах одновременно, но не могу найти правильный способ «ввести» или «вставить» текст в поле ввода.
также я не знаю, как правильно вставлять изображения, я пытался имитировать CTRL + V с изображением в буфере обмена, используя send_keys(image) безуспешно
при попытке вставить или поместите полный текст одним действием он просто записывает первое слово каждой строки
Привет
< strong>Как
ты?
просто напишу
Ч
Ч
а

Код: Выделить всё

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
import os
import time
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.keys import Keys

print("navegador")
#abre navegador
profile = webdriver.FirefoxProfile()
profile.set_preference("dom.webnotifications.enabled", False)

browser = webdriver.Firefox(options=profile)
browser.get('https://www.facebook.com')
browser.maximize_window()

print("datos")
#carga datos
arch3 = open("datos.txt", "r")
user = []

arch2 = open("grupos.txt", 'r')
list = []

for i in arch2.readlines():
list.append(i)
arch2.close()

for i in arch3.readlines():
user.append(i)
arch3.close()

print("login")
#login
login = browser.find_element(By.ID, "email")
login.send_keys(user[0])

p = browser.find_element(By.ID, "pass")
p.send_keys(user[1])
time.sleep(5)
#p.send_keys(Keys.RETURN)

try:
boton = browser.find_element(By.XPATH, "//*[starts-with (@id, 'u_0_5_')]")
boton.click()
time.sleep(10)
except:
print("No Login")
time.sleep(25000)

print("grupo")
#grupo
for i in list:
grupos = 0
browser.get(i)

print("post")
#Post
time.sleep(20)
post = WebDriverWait(browser, 40).until(EC.element_to_be_clickable((By.XPATH, "/html/body/div[1]/div/div/div[1]/div/div[3]/div/div/div[1]/div[1]/div[4]/div/div[2]/div/div/div[2]/div[1]/div/div/div/div[1]/div")))
post.click()

print("post 1.1")
time.sleep(20)
post2 = WebDriverWait(browser, 40).until(EC.element_to_be_clickable((By.XPATH, "/html/body/div[1]/div/div/div[1]/div/div[4]/div/div/div[1]/div/div[2]/div/div/div/div/div[1]/form/div/div[1]/div/div/div/div[2]/div[1]/div[1]/div[1]/div[1]/div/div/div[1]")))
post2.click()

post2.send_keys("Hello World")

time.sleep(25000)
Я нашел уникальный способ сделать это с помощью цикла и send_keys(), но он медленнее, чем человек, обычно печатающий на клавиатуре, поэтому неоптимален
Есть некоторые вещи, которые я сейчас не использую, и код можно оптимизировать, но я сделал это только для тестирования.
  • отпечатки предназначены для отслеживания выполнения кода
  • send_keys(Keys.RETURN) предназначен для того, чтобы не находить кнопку входа в систему, но она просто успешно запускается 1/2 раза
  • последний метод time.sleep() предназначен для проверки XPATH/ID/CLASS и т. д.
  • Некоторые методы time.sleep() для корректировки времени загрузки я изменю его на WebDriverWait.


Подробнее здесь: https://stackoverflow.com/questions/792 ... ting-issue
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»