Нажатие кнопки () дает странную проблему в селене Python - PullRequest
0 голосов
/ 10 апреля 2020

Я пытаюсь отправить пользовательское сообщение своим соединениям в 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 говорит: возникла проблема отправив ваше сообщение. Пожалуйста, попробуйте еще раз ...

Но, когда я пытаюсь нажать кнопку отправки вручную, это не проблема, просто отправляется сообщение.

Я думаю, что я испортил маленький вещь, которую я не мог понять.

1 Ответ

0 голосов
/ 23 апреля 2020

Исправлено ...

Я не знаю, в чем проблема ... когда я попробовал код через несколько дней ... он работал как чудо ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...