【问题标题】:How to fix Facebook Autopost Python code error?如何修复 Facebook Autopost Python 代码错误?
【发布时间】:2020-07-10 14:36:38
【问题描述】:

我试图使用 python 代码将内容自动发布到特定组,但我遇到了错误。我对 python 不太擅长,但修复了大部分编译错误。请帮助我修复以下错误。我正在使用 python 3

这是我用来发布到 facebook 的代码

from datetime import datetime
from time import sleep

from selenium import webdriver

from selenium.webdriver.chrome.options import Options


username = raw_input('Enter your username: ')
password = raw_input('Enter your password: ')
number_time_post = int(input('Enter the number times post: '))
id_target = int(input('Enter the target ID (page, group, user): '))
content = 'Testing content'

chrome_options = Options()
chrome_options.add_experimental_option(
    "prefs", {'profile.managed_default_content_settings.javascript': 2}
)
driver = webdriver.Chrome('chromedriver', chrome_options=chrome_options)

driver.get("https://m.facebook.com/")
print("Opened facebook")

username_box = driver.find_element_by_id('m_login_email')
username_box.send_keys(username)
print("Email Id entered")

password_box = driver.find_element_by_id('m_login_password')
password_box.send_keys(password)
print("Password entered")

login_box = driver.find_element_by_id('u_0_5')
sleep(10)
login_box.click()

try:
    if driver.find_element_by_id('m_login_email') or \
            driver.find_element_by_id('m_login_password'):
        print("The username or password is incorrect")
        exit(1)
except Exception:
    pass

count = 0
print('Index\t Duration')
start_process = datetime.now()
while number_time_post > 0:
    start = datetime.now()
    count += 1
    driver.get(
        "https://m.facebook.com/{}".format(id_target)
    )
    message_box = None
    try:
        message_box = driver.find_element_by_name('xc_message')
    except Exception:
        message_box = driver.find_element_by_id('u_0_0')
    finally:
        if not message_box:
            print('Something went wrong. Please check it again')
            exit(1)

    message_box.send_keys(
         content + ' \n.\n.\n.\n.\n.\n' + str(datetime.now().timestamp())
    )
    post_btn = driver.find_element_by_name('view_post')
    sleep(1)
    post_btn.click()

    end = datetime.now()
    duration = end - start
    print("{}\t {}".format(count, duration))
    number_time_post -= 1

end_process = datetime.now()
print('Total\t {}'.format(end_process - start_process))
driver.close()

请找出以下错误

   C:\Users\uday\Downloads\facebook-auto-post-master>python run.py
Enter your username: 11
Enter your password: 11
Enter the number times post: 11
Enter the target ID (page, group, user): 11

DevTools listening on ws://127.0.0.1:65149/devtools/browser/167f42ea-0a1f-4c63-80da-5ef4f720d7b6
Opened facebook
Email Id entered
Password entered
Traceback (most recent call last):
  File "run.py", line 34, in <module>
    login_box.click()
  File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webelement.py", line 80, in click
    self._execute(Command.CLICK_ELEMENT)
  File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webelement.py", line 633, in _execute
    return self._parent.execute(command, params)
  File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "C:\Python27\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.ElementNotInteractableException: Message: element not interactable
  (Session info: chrome=83.0.4103.116)

【问题讨论】:

  • 问题解决了吗?你看到我的回答了吗?

标签: python python-3.x python-2.7 python-requests


【解决方案1】:

错误原因发生在此时login_box.click(),带有错误

selenium.common.exceptions.ElementNotInteractableException: 消息:元素不可交互

是在找到一个元素但您无法与之交互时引起的。例如,您可能无法单击或发送密钥。

这可能有几个原因:

  1. 元素不可见/不显示
  2. 元素在屏幕外
  3. 元素在另一个元素的后面或隐藏
  4. 用户需要先执行一些其他操作才能启用它。

我倾向于认为这可能与 point-3 有关,但您最好评估一下并找出导致错误的原因。

最后,我的btn 元素以不同的id 显示

<input value="Log In" aria-label="Log In" data-testid="royal_login_button" type="submit" id="u_0_b">

虽然这不是导致您的错误的原因,但最好确保您的 id 值确实正确并且您没有针对错误的元素。

【讨论】:

猜你喜欢
  • 2019-02-09
  • 1970-01-01
  • 2018-05-05
  • 2019-12-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-16
相关资源
最近更新 更多