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

Selenium/Python如何点击LinkedIn职位爬虫的“最新发布”单选按钮

LinkedIn职位爬虫切换最新排序解决方案

问题原因

  • 原代码定位的sortBy-0是默认的「Most relevant」相关度排序单选框,不是目标的最新排序对应sortBy-1
  • LinkedIn前端隐藏了单选框的input元素,直接对input调用click方法会触发元素不可交互的报错
  • 原代码缺少点击「Done」提交筛选的步骤,就算选中了排序也不会生效

修复后可运行代码

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver.get('https://uk.linkedin.com/jobs/bioinformatics-jobs?position=1&pageNum=0')
# 初始化显式等待,比隐式等待适配动态页面稳定性更高
wait = WebDriverWait(driver, 10)

# 等待排序下拉菜单可点击后展开
sort_dropdown = wait.until(EC.element_to_be_clickable((By.CLASS_NAME, 'collapsible-dropdown__button')))
sort_dropdown.click()

# 点击Most recent对应的label标签,避开input元素不可交互的限制
most_recent_label = wait.until(EC.element_to_be_clickable((By.XPATH, '//label[@for="sortBy-1"]')))
most_recent_label.click()

# 提交筛选让排序生效
done_btn = wait.until(EC.element_to_be_clickable((By.CLASS_NAME, 'filter__submit-button')))
done_btn.click()

异常兜底方案

如果还是触发元素不可交互的报错,替换选中最新排序的逻辑为JS强制点击,绕过前端交互限制:

# 替换上面的label点击逻辑即可
most_recent_input = wait.until(EC.presence_of_element_located((By.ID, 'sortBy-1')))
driver.execute_script("arguments[0].click();", most_recent_input)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 13:18:05