Open Winson-030 opened 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的版本
关于版本的问题,我刚才查看了一下,是: 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 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]
关于版本的问题,我刚才查看了一下,是: 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
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
楼上两位是不是都是停留在”推荐职位“这个地方?如果是的话,且都是mac系统,我怀疑可能是boss针对苹果电脑或者苹果电脑本身用driver的某种方式导致的页面位置不一样?
检查方式: 上述界面 在此处点击右键检查 点击右键检查后,找到该标签的对应元素,如图展示 随后单机右键->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 你的也是mac系统,或者苹果电脑上的mac吗?给我截取一下界面可以吗?谢谢
系统版本:Macos Sonoma14.1.2 Python版本:3.10.2 Chrome版本:120.0.6099.129
随便加的一些岗位,我这个号就只能是三个,文字超长也不会变成下拉
我将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() # 触发操作
# 后面的点击下拉选项的操作代码去掉了
卡住的操作
@ChinaDragonNB 这个不是卡住,这个过程是在等待chatgpt通过api生成回答,你可以看到 in thread...,说明已经进入了thread中开始工作,多等一会应该会有,如果多等很久还是有报错的话,你再在这里分享一下
@ChinaDragonNB 这个不是卡住,这个过程是在等待chatgpt通过api生成回答,你可以看到 in thread...,说明已经进入了thread中开始工作,多等一会应该会有,如果多等很久还是有报错的话,你再在这里分享一下 好的,我先研究下
@ChinaDragonNB 朋友,你要是有空的话,能不能创建一个新分支叫mac,然后把你的代码pull一下,这样后面同样用mac系统的朋友可以直接用 我这手边没有mac系统的,修改什么不太好弄 可以的话我给你一个Collaborators邀请
@ChinaDragonNB 朋友,你要是有空的话,能不能创建一个新分支叫mac,然后把你的代码pull一下,这样后面同样用mac系统的朋友可以直接用 我这手边没有mac系统的,修改什么不太好弄 可以的话我给你一个Collaborators邀请
不是Mac的问题,我用家里的Windows电脑也是分开的标签页,我的只能是选择三个期望职位,我猜测你们大于3个期望职位所以变成下拉了。
@ChinaDragonNB 是你的账号只能选择三个期望岗位?这样一弄的话就得自己改一下标签了...不知道上面两位是不是一样的问题
楼上两位是不是都是停留在”推荐职位“这个地方?如果是的话,且都是mac系统,我怀疑可能是boss针对苹果电脑或者苹果电脑本身用driver的某种方式导致的页面位置不一样?
检查方式: 上述界面 在此处点击右键检查 点击右键检查后,找到该标签的对应元素,如图展示 随后单机右键->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() # 打开下拉菜单
//*[@id="wrap"]/div[2]/div[1]/div/div[1]/a[4]/span
不知道是mac不一样,还是boss更新的原因。换成[@id="wrap"]/div[2]/div[1]/div/div[1]/a[4]/span后可以正常锁定我想要的了,但是还是一样的崩溃
我加了print,发现获取不到岗位描述
@ChinaDragonNB 是你的账号只能选择三个期望岗位?这样一弄的话就得自己改一下标签了...不知道上面两位是不是一样的问题
我也最多能选三个岗位
不知道是mac不一样,还是boss更新的原因。换成[@id="wrap"]/div[2]/div[1]/div/div[1]/a[4]/span后可以正常锁定我想要的了,但是还是一样的崩溃 我加了print,发现获取不到岗位描述
可能是mac页面的description的xpath不一样。 如图方式,复制粘贴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,试一下这样还会不会报错
@ChinaDragonNB 是你的账号只能选择三个期望岗位?这样一弄的话就得自己改一下标签了...不知道上面两位是不是一样的问题
我也最多能选三个岗位
那估计就是账号的问题吧
@ChinaDragonNB 是你的账号只能选择三个期望岗位?这样一弄的话就得自己改一下标签了...不知道上面两位是不是一样的问题
我也最多能选三个岗位
那估计就是账号的问题吧
能提供一下你的开发环境吗?我用Windows 机器模拟一下看看能不能跑起来。我的是win10 ltsc
在mac中遇到了同样的问题, 这是因为mac的环境变量中没有chromedrive 导致的。 需要配置这个环境变量。 下载这个chromedrive 完成之后,执行这个chromedrive可能会遇到不能执行chromedrive的问题,需要使用这个命令“xattr -d com.apple.quarantine chromedriver”
系统
macOS Ventura
python 版本
3.11
依赖版本
写了个 requirement.txt 自动安装的
配置
已经配置了boss的职位下拉菜单,write_response.py 文件中也设定了同样的名字
报错
成功登陆后,没有自动点击岗位并发送求职信息,程序出现下面的错误并停止。
疑问
请问这是driver的版本问题吗?我需要如何排查问题?