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

Selenium无法点击导航栏下拉菜单中Job Listing V2的问题

自动化脚本导航问题排查与解决

任务与问题

我正在编写自动化脚本完成以下任务:

  • 使用Chrome打开目标网站
  • 填写账号信息完成登录
  • 导航至Job Listing V2标签页
  • 在该页面输入产品条码
  • 抓取搜索返回的XML数据并保存为XLS文件
  • 重复处理下一个条码

目前卡在第三步,无论使用何种代码操作,页面始终停留在网站首页。

当前代码

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from webdriver_manager.chrome import ChromeDriverManager

options = Options()
options.add_experimental_option("detach", True)

driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=options)

driver.maximize_window()

driver.get("https://brands.silo.co.za/#/Job/JobListingV2")

full_name_input = driver.find_element(By.ID, "Fullname")
full_name_input.send_keys("Meeaad Bharoochi")

full_name_input = driver.find_element(By.ID, "Password")
full_name_input.send_keys("Password@1")

submit_button = driver.find_element(By.CLASS_NAME, "btn-primary")
submit_button.click()

anchor_element = driver.find_element(By.LINK_TEXT, "Job Listing V2")
anchor_element.click()

目标网站HTML结构片段

...
<li class="dropdown">
    <a href="javascript:return;" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">
        Jobs <span class="caret"></span>
    </a>
    <ul class="dropdown-menu">
        <li>
            <a href="/#/Job/JobListingV2">Job Listing V2</a>
...

解决方案

核心问题是未等待页面元素加载完成,且下拉菜单需先展开才能定位子元素,修改方案如下:

  1. 用显式等待替代直接定位
    登录后页面需要时间渲染导航栏,使用WebDriverWait等待元素可交互,避免因元素未加载导致定位失败。

  2. 分步处理下拉菜单
    先点击展开Jobs下拉菜单,再等待并点击"Job Listing V2"链接。

修改后的完整代码

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from webdriver_manager.chrome import ChromeDriverManager

options = Options()
options.add_experimental_option("detach", True)

driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=options)
wait = WebDriverWait(driver, 10)  # 设置10秒超时等待

driver.maximize_window()
driver.get("https://brands.silo.co.za/#/Job/JobListingV2")

# 等待并填写账号信息
wait.until(EC.visibility_of_element_located((By.ID, "Fullname"))).send_keys("Meeaad Bharoochi")
wait.until(EC.visibility_of_element_located((By.ID, "Password"))).send_keys("Password@1")

# 等待并点击登录按钮
wait.until(EC.element_to_be_clickable((By.CLASS_NAME, "btn-primary"))).click()

# 等待并点击Jobs下拉菜单,展开选项
jobs_dropdown = wait.until(EC.element_to_be_clickable((By.XPATH, "//a[contains(@class, 'dropdown-toggle') and contains(text(), 'Jobs')]")))
jobs_dropdown.click()

# 等待下拉菜单中的Job Listing V2链接可点击,然后点击
wait.until(EC.element_to_be_clickable((By.LINK_TEXT, "Job Listing V2"))).click()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 21:13:31