【问题标题】:how to resolve Error : for i in range(len(val)): TypeError: object of type 'NoneType' has no len() , it might be silly如何解决错误:for i in range(len(val)): TypeError: object of type 'NoneType' has no len() ,这可能很傻
【发布时间】:2021-10-05 01:06:09
【问题描述】:

在我的项目中,我必须在 Instagram dm 中发送一个 numpy 板,sendMessage() 功能工作正常我可以发送 str 消息但不能发送我由 numpy 创建的,请帮助我

提前致谢

我的代码

from time import sleep
import numpy as np
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

options = webdriver.ChromeOptions()
options.add_argument("user-data-dir=C:\\Users\\saksh\\Desktop\\codeing\\Projects\\Connect 4\\chrome profiles\\chrome profile - 1")
browser = webdriver.Chrome(options =  options , executable_path = r"C:\Users\saksh\Desktop\codeing\imported items\chromedriver v-90.exe")


ROW_COUNT = 6
COLUMN_COUNT = 7

def create_board():
    board = np.zeros((ROW_COUNT, COLUMN_COUNT))

    return board


def send_board(board):
    board = str(np.flip(board, 0))
    board  = board.replace("0", "????")
    board = board.replace("1", "????")
    board =  board.replace("2", "⚫")
    

board = create_board()


def sendMessage(message , browser):
    message_box = browser.find_element_by_css_selector(".ItkAi > textarea:nth-child(1)")
    message_box.send_keys(message)
    message_box.Keys.ENTER 

# manually go u any instagram dm 
# manually go u any instagram dm 
print("manually go u any instagram dm , and press enter") 

input("press enter !!")

sleep(5)

sendMessage(send_board(board) , browser)

错误

raceback(最近一次通话最后一次): 文件“c:\Users\saksh\Desktop\codeing\Projects\Connect 4\temp1.py”,第 46 行,在 sendMessage(send_board(board) , 浏览器) 文件“c:\Users\saksh\Desktop\codeing\Projects\Connect 4\temp1.py”,第 35 行,在 sendMessage message_box.send_keys(消息) 文件“C:\Users\saksh\AppData\Local\Programs\Python\Python39\lib\site-packages\selenium\webdriver\remote\webelement.py”,第 478 行,在 send_keys {'text': "".join(keys_to_typing(value)), 文件“C:\Users\saksh\AppData\Local\Programs\Python\Python39\lib\site-packages\selenium\webdriver\common\utils.py”,第 150 行,在 keys_to_typing 对于我在范围内(len(val)): TypeError: 'NoneType' 类型的对象没有 len()

【问题讨论】:

  • send_board() 没有 return 任何东西,但您将其结果传递给 sendMessage()。这意味着您将None 隐式传递给sendMessage()。也许您打算将return board 放在send_board() 中?
  • 是的,非常感谢,我不能投票给你,因为我的声誉很低
  • 你可以。谢谢!

标签: python python-3.x numpy selenium selenium-webdriver


【解决方案1】:

从错误跟踪中很明显,在这个块中

def sendMessage(message , browser):
    message_box = browser.find_element_by_css_selector(".ItkAi > textarea:nth-child(1)")
    message_box.send_keys(message)
    message_box.Keys.ENTER 

这一行

message_box.send_keys(message)

失败,因为message 属于NoneType
这意味着您在那里传递了一个 NoneType 对象。
这是因为您通过

调用此方法
sendMessage(send_board(board) , browser)

send_board 方法不返回值/对象。
所以你实际上什么都不发送,NoneType 对象作为要插入到 message_box 元素中的消息发送到 sendMessage 方法。

【讨论】:

    猜你喜欢
    • 2018-02-11
    • 2022-09-23
    • 2020-08-25
    • 2015-01-20
    • 2021-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-23
    相关资源
    最近更新 更多