【发布时间】:2020-04-10 16:13:53
【问题描述】:
我正在尝试使用 Selenium Python 向我在 Linkedin 中的连接发送自定义消息。部分代码如下:
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 说:发送您的消息时出现问题。请再试一次...
但是,当我尝试手动单击发送按钮时,没有问题,它只是发送消息。
我想我搞砸了一件我想不通的小事。
【问题讨论】:
-
试图在本地复制您的问题,但脚本抛出错误 SyntaxError: invalid syntax
-
excluded_list = [# Excluded list]也许这条线是问题所在..再试一次...@DipakBachhav -
excluded_list = [# Excluded list] .. 这个,我编辑后在这里发布...
标签: python python-3.x selenium selenium-webdriver