Frrrrrrrrank / auto_job__find__chatgpt__rpa

This is a tool used to automatically generate a cover letter using chatgpt based on your resume and job description and send messages to bosses in China.
1.46k stars 217 forks source link

成功登陆后程序报错 #1

Open Winson-030 opened 10 months ago

Winson-030 commented 10 months ago

系统

macOS Ventura

python 版本

3.11

依赖版本

写了个 requirement.txt 自动安装的

配置

已经配置了boss的职位下拉菜单,write_response.py 文件中也设定了同样的名字

报错

成功登陆后,没有自动点击岗位并发送求职信息,程序出现下面的错误并停止。

OpenAI version is compatible.
Loaded existing assistant ID.
Loaded existing assistant ID.
An error occurred: Message: 
Stacktrace:
0   chromedriver                        0x000000010079c4dc chromedriver + 4162780
1   chromedriver                        0x0000000100794664 chromedriver + 4130404
2   chromedriver                        0x00000001003ebbc0 chromedriver + 293824
3   chromedriver                        0x0000000100432040 chromedriver + 581696
4   chromedriver                        0x0000000100471ab0 chromedriver + 842416
5   chromedriver                        0x00000001004256bc chromedriver + 530108
6   chromedriver                        0x0000000100426930 chromedriver + 534832
7   chromedriver                        0x0000000100761e08 chromedriver + 3923464
8   chromedriver                        0x00000001007663dc chromedriver + 3941340
9   chromedriver                        0x000000010074a038 chromedriver + 3825720
10  chromedriver                        0x0000000100766f3c chromedriver + 3944252
11  chromedriver                        0x000000010073c6f4 chromedriver + 3770100
12  chromedriver                        0x0000000100783980 chromedriver + 4061568
13  chromedriver                        0x0000000100783af8 chromedriver + 4061944
14  chromedriver                        0x00000001007942e4 chromedriver + 4129508
15  libsystem_pthread.dylib             0x000000019a653fa8 _pthread_start + 148
16  libsystem_pthread.dylib             0x000000019a64eda0 thread_start + 8

疑问

请问这是driver的版本问题吗?我需要如何排查问题?

Frrrrrrrrank commented 10 months ago

在不考虑driver出现问题的情况下,是否有可能是相关元素没加载出来的时候就等待超时了?你有看到职位选择菜单下拉出来吗? 你可以尝试一下finding_jobs.py中的def get_job_description():将下面部分的代码,”WebDriverWait(driver, 10)“更改成100,多等待一下。

确保元素已加载并且可以获取文本

job_description_element = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.XPATH, xpath_locator_job_description))
)

如果没有解决问题,可以报错的时候截取一下浏览器界面,我看一下当时的页面

我在创建代码的时候没有关注driver的版本

Frrrrrrrrank commented 10 months ago

关于版本的问题,我刚才查看了一下,是: ChromeDriver 120.0.6099.109 (3419140ab665596f21b385ce136419fde0924272-refs/branch-heads/6099@{#1483})

另外,我没用过mac系统,我不太清楚你的电脑里有没有chromedriver相关的环境变量,下面链接是在windows中设置chromedriver的相关讲解

https://youtu.be/WsjShhwDLlo?si=qygfhUjtDM_21ETl&t=641

不过你能够正常的打开chrome并扫码,我倾向于chromedriver应当是没问题

Winson-030 commented 10 months ago

关于版本的问题,我刚才查看了一下,是: ChromeDriver 120.0.6099.109 (3419140ab665596f21b385ce136419fde0924272-refs/branch-heads/6099@{#1483})

另外,我没用过mac系统,我不太清楚你的电脑里有没有chromedriver相关的环境变量,下面链接是在windows中设置chromedriver的相关讲解

https://youtu.be/WsjShhwDLlo?si=qygfhUjtDM_21ETl&t=641

不过你能够正常的打开chrome并扫码,我倾向于chromedriver应当是没问题

我发现我没有chromedriver,程序启动的时候直接调用的是本地的chrome 浏览器。 我在macos和Windows 两个系统下跑项目,都出错了。

windows 下的错误是这样的,也是登录成功后,过了几秒报错。

Stacktrace:
    GetHandleVerifier [0x00007FF62AA12142+3514994]
    (No symbol) [0x00007FF62A630CE2]
    (No symbol) [0x00007FF62A4D76AA]
    (No symbol) [0x00007FF62A4B0AFD]
    (No symbol) [0x00007FF62A54CB1B]
    (No symbol) [0x00007FF62A56218F]
    (No symbol) [0x00007FF62A545D93]
    (No symbol) [0x00007FF62A514BDC]
    (No symbol) [0x00007FF62A515C64]
Winson-030 commented 10 months ago

关于版本的问题,我刚才查看了一下,是: ChromeDriver 120.0.6099.109 (3419140ab665596f21b385ce136419fde0924272-refs/branch-heads/6099@{#1483}) 另外,我没用过mac系统,我不太清楚你的电脑里有没有chromedriver相关的环境变量,下面链接是在windows中设置chromedriver的相关讲解 https://youtu.be/WsjShhwDLlo?si=qygfhUjtDM_21ETl&t=641 不过你能够正常的打开chrome并扫码,我倾向于chromedriver应当是没问题

我发现我没有chromedriver,程序启动的时候直接调用的是本地的chrome 浏览器。 我在macos和Windows 两个系统下跑项目,都出错了。

windows 下的错误是这样的,也是登录成功后,过了几秒报错。

Stacktrace:
  GetHandleVerifier [0x00007FF62AA12142+3514994]
  (No symbol) [0x00007FF62A630CE2]
  (No symbol) [0x00007FF62A4D76AA]
  (No symbol) [0x00007FF62A4B0AFD]
  (No symbol) [0x00007FF62A54CB1B]
  (No symbol) [0x00007FF62A56218F]
  (No symbol) [0x00007FF62A545D93]
  (No symbol) [0x00007FF62A514BDC]
  (No symbol) [0x00007FF62A515C64]
OpenAI version is compatible.
Loaded existing assistant ID.
Loaded existing assistant ID.
An error occurred: Message: 
Stacktrace:
    GetHandleVerifier [0x00007FF62AA12142+3514994]
    (No symbol) [0x00007FF62A630CE2]
    (No symbol) [0x00007FF62A4D76AA]
    (No symbol) [0x00007FF62A521860]
    (No symbol) [0x00007FF62A52197C]
    (No symbol) [0x00007FF62A564EE7]
    (No symbol) [0x00007FF62A54602F]
    (No symbol) [0x00007FF62A5628F6]
    (No symbol) [0x00007FF62A545D93]
    (No symbol) [0x00007FF62A514BDC]
    (No symbol) [0x00007FF62A515C64]
    GetHandleVerifier [0x00007FF62AA3E16B+3695259]
    GetHandleVerifier [0x00007FF62AA96737+4057191]
    GetHandleVerifier [0x00007FF62AA8E4E3+4023827]
    GetHandleVerifier [0x00007FF62A7604F9+689705]
    (No symbol) [0x00007FF62A63C048]
    (No symbol) [0x00007FF62A638044]
    (No symbol) [0x00007FF62A6381C9]
    (No symbol) [0x00007FF62A6288C4]
    BaseThreadInitThunk [0x00007FFDC5807344+20]
    RtlUserThreadStart [0x00007FFDC77E26B1+33]

再补充一下安装了 chromedriver 之后的启动错误。chromedriver 使用winget安装的。 没法确定程序启动后调用的是 chromedriver 还是我本地的chrome

cksdxz1007 commented 10 months ago
python3 write_response.py
OpenAI version is compatible.
Loaded existing assistant ID.
Loaded existing assistant ID.
An error occurred: Message:
Stacktrace:
0   chromedriver                        0x000000010537c4dc chromedriver + 4162780
1   chromedriver                        0x0000000105374664 chromedriver + 4130404
2   chromedriver                        0x0000000104fcbbc0 chromedriver + 293824
3   chromedriver                        0x0000000105012040 chromedriver + 581696
4   chromedriver                        0x0000000105051ab0 chromedriver + 842416
5   chromedriver                        0x00000001050056bc chromedriver + 530108
6   chromedriver                        0x0000000105006930 chromedriver + 534832
7   chromedriver                        0x0000000105341e08 chromedriver + 3923464
8   chromedriver                        0x00000001053463dc chromedriver + 3941340
9   chromedriver                        0x000000010532a038 chromedriver + 3825720
10  chromedriver                        0x0000000105346f3c chromedriver + 3944252
11  chromedriver                        0x000000010531c6f4 chromedriver + 3770100
12  chromedriver                        0x0000000105363980 chromedriver + 4061568
13  chromedriver                        0x0000000105363af8 chromedriver + 4061944
14  chromedriver                        0x00000001053742e4 chromedriver + 4129508
15  libsystem_pthread.dylib             0x000000018a102034 _pthread_start + 136
16  libsystem_pthread.dylib             0x000000018a0fce3c thread_start + 8

以上是我的报错信息,脚本能帮我打开招聘网,扫码登录后默认停留在了「推荐职位」这个页签,而不是我设置的「运维工程师(成都)」这个页签,会不会跟这个有关系? 系统版本:macOS Sonoma 14.2.1 Google Chrome 120.0.6099.129

Frrrrrrrrank commented 10 months ago

楼上两位是不是都是停留在”推荐职位“这个地方?如果是的话,且都是mac系统,我怀疑可能是boss针对苹果电脑或者苹果电脑本身用driver的某种方式导致的页面位置不一样?

检查方式: 1704268175494 上述界面 1704268243960 在此处点击右键检查 1704268432999 点击右键检查后,找到该标签的对应元素,如图展示 随后单机右键->copy-->copy XPathn

看一下得到的结果是否和finding_jobs下的trigger_selector是否相同,如果不同的话就改一下改成你们的

def select_dropdown_option(driver, label):
    # 确保触发下拉列表的元素可见并且可点击

    trigger_selector = "//*[@id='wrap']/div[2]/div[1]/div/div[1]/div"
    trigger_element = WebDriverWait(driver, 10).until(
        EC.element_to_be_clickable((By.XPATH, trigger_selector))
    )
    trigger_element.click()  # 打开下拉菜单
ChinaDragonNB commented 10 months ago

我也是这个问题,职位只能选三个,没有那么多,而且三个是在三个标签页,不是在一个下拉框中

Frrrrrrrrank commented 10 months ago

@ChinaDragonNB 你的也是mac系统,或者苹果电脑上的mac吗?给我截取一下界面可以吗?谢谢

ChinaDragonNB commented 10 months ago

系统版本:Macos Sonoma14.1.2 Python版本:3.10.2 Chrome版本:120.0.6099.129

image

随便加的一些岗位,我这个号就只能是三个,文字超长也不会变成下拉 我将select_dropdown_option 这个函数调整后,没有这个问题了,但是会卡在打印描述后的状态,不会在动了。

    # 确保触发下拉列表的元素可见并且可点击
    # 没有下拉,按照上面说的复制文字a标签的Xpath
    trigger_selector = "//*[@id='wrap']/div[2]/div[1]/div/div[1]/a[3]"
    trigger_element = WebDriverWait(driver, 10).until(
        EC.element_to_be_clickable((By.XPATH, trigger_selector))
    )
    trigger_element.click()  # 触发操作
    # 后面的点击下拉选项的操作代码去掉了

卡住的操作

image
Frrrrrrrrank commented 10 months ago

@ChinaDragonNB 这个不是卡住,这个过程是在等待chatgpt通过api生成回答,你可以看到 in thread...,说明已经进入了thread中开始工作,多等一会应该会有,如果多等很久还是有报错的话,你再在这里分享一下

ChinaDragonNB commented 10 months ago

@ChinaDragonNB 这个不是卡住,这个过程是在等待chatgpt通过api生成回答,你可以看到 in thread...,说明已经进入了thread中开始工作,多等一会应该会有,如果多等很久还是有报错的话,你再在这里分享一下 好的,我先研究下

Frrrrrrrrank commented 10 months ago

@ChinaDragonNB 朋友,你要是有空的话,能不能创建一个新分支叫mac,然后把你的代码pull一下,这样后面同样用mac系统的朋友可以直接用 我这手边没有mac系统的,修改什么不太好弄 可以的话我给你一个Collaborators邀请

ChinaDragonNB commented 10 months ago

@ChinaDragonNB 朋友,你要是有空的话,能不能创建一个新分支叫mac,然后把你的代码pull一下,这样后面同样用mac系统的朋友可以直接用 我这手边没有mac系统的,修改什么不太好弄 可以的话我给你一个Collaborators邀请

不是Mac的问题,我用家里的Windows电脑也是分开的标签页,我的只能是选择三个期望职位,我猜测你们大于3个期望职位所以变成下拉了。

Frrrrrrrrank commented 10 months ago

@ChinaDragonNB 是你的账号只能选择三个期望岗位?这样一弄的话就得自己改一下标签了...不知道上面两位是不是一样的问题

xqingting commented 10 months ago

楼上两位是不是都是停留在”推荐职位“这个地方?如果是的话,且都是mac系统,我怀疑可能是boss针对苹果电脑或者苹果电脑本身用driver的某种方式导致的页面位置不一样?

检查方式: 1704268175494 上述界面 1704268243960 在此处点击右键检查 1704268432999 点击右键检查后,找到该标签的对应元素,如图展示 随后单机右键->copy-->copy XPathn

看一下得到的结果是否和finding_jobs下的trigger_selector是否相同,如果不同的话就改一下改成你们的

def select_dropdown_option(driver, label):
    # 确保触发下拉列表的元素可见并且可点击

    trigger_selector = "//*[@id='wrap']/div[2]/div[1]/div/div[1]/div"
    trigger_element = WebDriverWait(driver, 10).until(
        EC.element_to_be_clickable((By.XPATH, trigger_selector))
    )
    trigger_element.click()  # 打开下拉菜单
image

//*[@id="wrap"]/div[2]/div[1]/div/div[1]/a[4]/span

xqingting commented 10 months ago

不知道是mac不一样,还是boss更新的原因。换成[@id="wrap"]/div[2]/div[1]/div/div[1]/a[4]/span后可以正常锁定我想要的了,但是还是一样的崩溃

image

我加了print,发现获取不到岗位描述

image
cksdxz1007 commented 10 months ago

@ChinaDragonNB 是你的账号只能选择三个期望岗位?这样一弄的话就得自己改一下标签了...不知道上面两位是不是一样的问题

我也最多能选三个岗位

Frrrrrrrrank commented 10 months ago

不知道是mac不一样,还是boss更新的原因。换成[@id="wrap"]/div[2]/div[1]/div/div[1]/a[4]/span后可以正常锁定我想要的了,但是还是一样的崩溃 image 我加了print,发现获取不到岗位描述 image

可能是mac页面的description的xpath不一样。 1704316682872 如图方式,复制粘贴xpath到

def get_job_description_by_index(index):
    try:
        job_selector = f"//*[@id='wrap']/div[2]/div[2]/div/div/div[1]/ul/li[{index}]"
        job_element = driver.find_element(By.XPATH, job_selector)
        job_element.click()

        description_selector = "//*[@id='wrap']/div[2]/div[2]/div/div/div[2]/div/div[2]/p"
        WebDriverWait(driver, 10).until(
            EC.presence_of_element_located((By.XPATH, description_selector))
        )
        job_description_element = driver.find_element(By.XPATH, description_selector)
        return job_description_element.text

    except NoSuchElementException:
        print(f"No job found at index {index}.")
        return None

中的description_selector,试一下这样还会不会报错

Frrrrrrrrank commented 10 months ago

@ChinaDragonNB 是你的账号只能选择三个期望岗位?这样一弄的话就得自己改一下标签了...不知道上面两位是不是一样的问题

我也最多能选三个岗位

那估计就是账号的问题吧

Winson-030 commented 10 months ago

@ChinaDragonNB 是你的账号只能选择三个期望岗位?这样一弄的话就得自己改一下标签了...不知道上面两位是不是一样的问题

我也最多能选三个岗位

那估计就是账号的问题吧

能提供一下你的开发环境吗?我用Windows 机器模拟一下看看能不能跑起来。我的是win10 ltsc

Hwangsome commented 3 months ago

在mac中遇到了同样的问题, 这是因为mac的环境变量中没有chromedrive 导致的。 需要配置这个环境变量。 下载这个chromedrive 完成之后,执行这个chromedrive可能会遇到不能执行chromedrive的问题,需要使用这个命令“xattr -d com.apple.quarantine chromedriver”