【问题标题】:Selenium can't find button after tweet推文后硒找不到按钮
【发布时间】:2021-09-06 13:28:23
【问题描述】:

我正在用 Python 编写机器人代码,以自动将推文从文件发送到我的 Twitter 墙。第一条推文发布正确,但更糟糕的是,在第一次发布 selenium 后发现 Tweet 按钮并单击它时出现问题,有时两条推文同时发布等。如何解决?

def post_tweets(driver):
    tweets = open(os.path.dirname(os.path.realpath(__file__))+'\\tweets.txt', 'r')
    for tweet in tweets:
        time.sleep(3)
        try:
            textbox = WebDriverWait(driver, 5).until(EC.presence_of_element_located((By.CSS_SELECTOR, '.notranslate')))
            textbox.send_keys(tweet)
            try:
                send_button = WebDriverWait(driver, 25).until(EC.presence_of_element_located((By.CSS_SELECTOR, 'div.r-urgr8i:nth-child(4)')))
            except:
                return
            send_button.click()
        except:
           return

【问题讨论】:

  • 检查可能发生的任何异常,而不仅仅是returning。您根本没有看到有价值的信息。
  • 我试过了,除了 Exception as e: print(e) 但是你知道这根本没有帮助。

标签: python selenium web-scraping twitter


【解决方案1】:

好吧,我想我修好了。刚刚将 CSS_SELECTOR 替换为 XPATH。

def post_tweets(driver):
    tweets = open(os.path.dirname(os.path.realpath(__file__))+'\\tweets.txt', 'r')
    time.sleep(2)
    for tweet in tweets:
        time.sleep(1)
        textbox = WebDriverWait(driver, 5).until(EC.presence_of_element_located((By.CSS_SELECTOR, '.notranslate')))
        textbox.send_keys(tweet)
        send_button = WebDriverWait(driver, 5).until(EC.presence_of_element_located((By.XPATH, '/html/body/div/div/div/div[2]/main/div/div/div/div[1]/div/div[2]/div/div[2]/div[1]/div/div/div/div[2]/div[3]/div/div/div[2]/div[3]')))
        send_button.click()
    

【讨论】:

    猜你喜欢
    • 2021-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-24
    • 1970-01-01
    • 2019-05-30
    • 2019-01-31
    相关资源
    最近更新 更多