【问题标题】:Button click() gives strange problem in selenium Python按钮 click() 在 selenium Python 中给出了奇怪的问题
【发布时间】: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


【解决方案1】:

已修复...

我不知道问题是什么...几天后我尝试了代码...它就像一个魅力...

【讨论】:

    猜你喜欢
    • 2017-01-04
    • 1970-01-01
    • 2019-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多