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

使用Selenium实现LinkedIn一键申请时循环点击职位报错求助

解决Selenium定位LinkedIn职位元素报错问题

我跟着教程写了一段Python脚本,想用Selenium实现LinkedIn职位列表的循环点击功能,但运行时一直报错。

我的代码如下:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time

username_input = "email@gmail.com"
password_imput = "password"

driver = webdriver.Chrome("C:/Users/JUAN/Documents/chromedriver/chromedriver.exe")
driver.get("https://www.linkedin.com/jobs/search/?f_AL=true&geoId=100446943&keywords=data%20analyst&location=Argentina")

sign_in_button = driver.find_element("link text","Sign in")
sign_in_button.click()

email_field = driver.find_element("id", "username")
email_field.send_keys(username_input)

password_field = driver.find_element("id","password")
password_field.send_keys(password_imput)
password_field.send_keys(Keys.ENTER)
time.sleep(3)
all_listings = driver.find_element("css selector","job-card-container--clickable")

for listing in all_listings:
    print("called")
    listing.click()
    time.sleep(2)

报错信息:

selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"job-card-container--clickable"}
(Session info: chrome=103.0.5060.114)


问题原因及解决办法

  1. CSS选择器语法错误:类名作为CSS选择器时必须以.开头,你写的job-card-container--clickable缺少前缀,正确写法是.job-card-container--clickable。
  2. 元素定位方式错误:find_element仅返回第一个匹配元素,要获取所有职位列表需用复数形式find_elements,否则无法循环遍历。
  3. 硬编码等待不可靠:time.sleep(3)无法保证页面完全加载,替换为Selenium显式等待,确保元素加载完成后再定位。
  4. 变量拼写错误:原代码中password_imput拼写错误,修正为password_input避免后续变量问题。

修改后的代码示例:

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

username_input = "email@gmail.com"
password_input = "password"

driver = webdriver.Chrome("C:/Users/JUAN/Documents/chromedriver/chromedriver.exe")
driver.get("https://www.linkedin.com/jobs/search/?f_AL=true&geoId=100446943&keywords=data%20analyst&location=Argentina")

# 等待登录按钮加载
sign_in_button = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.LINK_TEXT, "Sign in"))
)
sign_in_button.click()

# 等待用户名输入框加载
email_field = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.ID, "username"))
)
email_field.send_keys(username_input)

# 等待密码输入框加载
password_field = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.ID, "password"))
)
password_field.send_keys(password_input)
password_field.send_keys(Keys.ENTER)

# 等待所有职位列表加载完成
all_listings = WebDriverWait(driver, 10).until(
    EC.presence_of_all_elements_located((By.CSS_SELECTOR, ".job-card-container--clickable"))
)

for listing in all_listings:
    print("called")
    listing.click()
    time.sleep(2)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 18:36:24