Я пытаюсь отправить пользовательское сообщение своим соединениям в Linkedin, используя Selenium Python. Неполный код выглядит следующим образом:
from time import sleep
from selenium import webdriver
import os
from selenium.webdriver import ActionChains
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import pyperclip
from selenium.webdriver.common.keys import Keys
class ConnectionsPage:
def __init__(self, browser, wait):
self.browser = browser
self.wait = wait
def test_message(self):
all_elements = self.browser.find_elements_by_css_selector('.list-style-none')
excluded_list = [# Excluded list]
print(len(excluded_list))
try:
for ele in all_elements:
name = ele.find_element_by_css_selector('.mn-connection-card__name.t-16.t-black.t-bold').text
if name in excluded_list:
print(f"{name} - Excluded")
else:
print(f"{name} - Included")
msg_btn = ele.find_element_by_css_selector(
'.message-anywhere-button.artdeco-button.artdeco-button--secondary')
msg_btn.click()
sleep(2)
self.wait.until(
EC.visibility_of_element_located((By.CSS_SELECTOR, ".msg-form__contenteditable"))).click()
sleep(1)
msg = "My custom message"
pyperclip.copy(msg)
self.browser.find_element_by_css_selector(".msg-form__contenteditable").send_keys(Keys.CONTROL + "v")
send_btn = self.browser.find_element_by_css_selector('.msg-form__send-button.artdeco-button.artdeco-button--1')
send_btn.click()
# self.browser.execute_script("arguments[0].click();", send_btn)
# actions = ActionChains(self.browser)
# actions.click(send_btn)
# actions.perform()
sleep(2)
self.browser.find_element_by_css_selector(".js-msg-close").click()
self.wait.until(EC.invisibility_of_element_located((By.CSS_SELECTOR, ".js-msg-close")))
except Exception as e:
print(e)
browser = webdriver.Chrome()
wait = WebDriverWait(browser, 10)
home_page = HomePage(browser, wait)
sleep(2)
login_page = home_page.go_to_login_page()
sleep(2)
feed_page = login_page.login("my_email", "my_password")
sleep(2)
conn_page = feed_page.go_to_my_connections_page()
sleep(2)
conn_page.test_message()
Проблемы в следующих строках:
send_btn = self.browser.find_element_by_css_selector('.msg-form__send-button.artdeco-button.artdeco-button--1')
send_btn.click()
Код работает отлично, и кнопка отправки нажата, но Linkedin говорит: возникла проблема отправив ваше сообщение. Пожалуйста, попробуйте еще раз ...
Но, когда я пытаюсь нажать кнопку отправки вручную, это не проблема, просто отправляется сообщение.
Я думаю, что я испортил маленький вещь, которую я не мог понять.