You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

LinkedIn求职脚本中PyAutoGUI抛出TypeError,求助故障原因

解决PyAutoGUI调用时的TypeError: int() argument must be a string... not 'NoneType'问题

这个错误我之前处理过,本质是你的LinkedIn申请程序在调用PyAutoGUI的坐标相关函数(比如click()、moveTo())时,传入了None作为x或y参数,导致PyAutoGUI内部把None转成整数时触发了报错。既然你不能修改PyAutoGUI的代码,那我们从调用它的业务代码入手解决:

排查步骤和解决方案

1. 定位所有调用PyAutoGUI的代码

先找到程序里所有使用PyAutoGUI的位置,重点关注那些需要传入坐标的函数,比如:

  • pyautogui.click(x, y)
  • pyautogui.moveTo(x, y)
  • pyautogui.doubleClick(x, y)

检查这些函数的x、y参数来源,看看是不是某个获取坐标的逻辑返回了None(比如图像识别没找到目标元素,或者DOM元素定位失败)。

2. 给坐标参数增加非空校验

在调用PyAutoGUI函数之前,先判断x和y是否为有效值,避免把None传进去。示例代码如下:

# 假设原来的代码是这样的
apply_btn_x, apply_btn_y = get_application_button_coords()  # 这个函数可能返回None
pyautogui.click(apply_btn_x, apply_btn_y)

# 修改后的代码,增加非空判断
apply_btn_x, apply_btn_y = get_application_button_coords()
if apply_btn_x is not None and apply_btn_y is not None:
    pyautogui.click(apply_btn_x, apply_btn_y)
else:
    print("⚠️ 未找到职位申请按钮的坐标,跳过本次申请操作")

3. 修复坐标获取的逻辑

如果坐标是通过图像识别(比如pyautogui.locateOnScreen())获取的,很可能是识别失败返回了None,你可以优化这个逻辑:

  • 增加置信度参数(需要先安装opencv-python:pip install opencv-python),降低识别的严格程度
  • 增加超时等待,给页面足够的加载时间
  • 检查目标图像是否和屏幕上的元素完全匹配(比如有没有被弹窗遮挡,或者页面元素样式变化了)

示例优化后的图像识别代码:

import pyautogui

try:
    # 增加置信度,设置超时等待10秒
    btn_location = pyautogui.locateOnScreen('apply_button.png', confidence=0.8, timeout=10)
    if btn_location:
        apply_btn_x, apply_btn_y = pyautogui.center(btn_location)
    else:
        apply_btn_x, apply_btn_y = None, None
except pyautogui.ImageNotFoundException:
    apply_btn_x, apply_btn_y = None, None
    print("⏰ 超时未找到申请按钮,请检查页面状态")

4. 用硬编码坐标做测试验证

如果不确定问题出在哪,可以先临时用一个确定有效的坐标(比如屏幕中间的位置)调用PyAutoGUI,验证函数本身能正常运行:

# 替换成你屏幕上的有效坐标,比如1920x1080屏幕的中间位置
pyautogui.click(960, 540)

如果这个调用能成功,就说明问题确实出在你的坐标获取逻辑上,而不是PyAutoGUI本身的安装问题。

内容的提问来源于stack exchange,提问作者ronnieotieno

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 12:12:31