魔法指令点击Boss网页的职位类型一二级菜单后,选择一些自已定义职位,python代码自定义改动,测试通过
评论
收藏

魔法指令点击Boss网页的职位类型一二级菜单后,选择一些自已定义职位,python代码自定义改动,测试通过

经验分享
小白和大白
2025-07-01 17:20·浏览量:358
小白和大白
发布于 2025-07-01 17:20358浏览

from typing import *

try:

   from xbot.app.logging import trace as print

except:

   from xbot import print

from xbot_ai import *

def select_job_category_by_hover(browser, job_type_trigger, dropdown_panel, secondary_panel, primary_category: str, secondary_category: str) -> None:

   """

   title: 职位类型二级分类选择

   description: 点击%job_type_trigger%打开下拉面板,在%dropdown_panel%中悬浮%primary_category%一级分类,等待%secondary_panel%展开后点击%secondary_category%二级分类

   inputs:

       - browser (WebBrowser): 目标网页

       - job_type_trigger (Selector): `职位类型`,uuid: sa8b5r0v

       - dropdown_panel (Selector): `职位类型下拉面板`,uuid: sa8njl4h

       - secondary_panel (Selector): `二级分类面板`,uuid: sa9rzw8k

       - primary_category (str-textbox): 要悬浮的一级分类名称,eg: 设计

       - secondary_category (str-textbox): 要点击的二级分类名称,eg: 家具设计

   outputs:

       - None

   """

   

   print("1. 点击职位类型触发器打开下拉面板")

   trigger_element = browser.find_all_by_xpath(job_type_trigger, timeout=3)[0]

   trigger_element.click(delay_after=0.3)

   

   print("2. 在职位类型下拉面板中查找一级分类")

   panel_element = browser.find_all_by_xpath(dropdown_panel, timeout=3)[0]

   primary_items = panel_element.find_all_by_xpath(".//div[@class='position-select-dropdown__item']", timeout=3)

   

   target_primary_item = None

   for item in primary_items:

       item_text = item.get_text().strip()

       print(f"    a. 检查一级分类: {item_text}")

       if primary_category in item_text:

           target_primary_item = item

           print(f"    b. 找到匹配的一级分类: {item_text}")

           break

   

   if not target_primary_item:

       raise Exception(f"未找到一级分类: {primary_category}")

   

   print("3. 悬浮一级分类项,等待二级分类面板展开")

   target_primary_item.hover(delay_after=0.3)

   

   print("4. 等待二级分类面板展开并查找目标二级分类")

   # 等待页面状态稳定

   browser.wait_load_completed(timeout=3)

   

   # 查找所有可能的二级分类面板

   secondary_panels = browser.find_all_by_xpath("//div[@class='position-select-dropdown__main']", timeout=3)

   

   target_secondary_link = None

   for panel in secondary_panels:

       # 检查面板是否可见且包含目标分类

       try:

           secondary_links = panel.find_all_by_xpath(".//a[contains(@href, 'javascript:;')]", timeout=1)

           for link in secondary_links:

               link_text = link.get_text().strip()

               print(f"    a. 检查二级分类: {link_text}")

               if secondary_category in link_text or link_text == secondary_category:

                   target_secondary_link = link

                   print(f"    b. 找到匹配的二级分类: {link_text}")

                   break

           if target_secondary_link:

               break

       except:

           continue

   

   if not target_secondary_link:

       raise Exception(f"未找到二级分类: {secondary_category}")

   

   print("5. 点击目标二级分类")

   target_secondary_link.click(delay_after=0.3)

   print(f"成功选择职位类型: {primary_category} -> {secondary_category}")

收藏
全部评论1
最新
发布评论
评论