


from typing import *
try:
from xbot.app.logging import trace as print
except:
from xbot import print
from xbot_ai import *
def select_job_type(web_page, job_type_trigger, job_type_dropdown, job_type_sub_panel, major_category: str, sub_category: str) -> None:
"""
title: 选择职位类型
description: 点击`职位类型`,悬停在`职位类型下拉面板`中的职位大类上,然后点击`职位类型子面板`中的职位子类。
inputs:
- web_page (WebPage): 目标网页
- job_type_trigger (Selector): 职位类型,uuid: sxmk831t
- job_type_dropdown (Selector): 职位类型下拉面板,uuid: sxn5nkdv
- job_type_sub_panel (Selector): 职位类型子面板,uuid: sxnhkzgs
- major_category (str-textbox): 职位大类名称,eg: "客服/运营"
- sub_category (str-textbox): 职位子类名称,eg: "客服专员"
outputs:
- None
"""
print("1. 点击职位类型触发下拉面板")
job_type_trigger_element = web_page.wait_for_element(job_type_trigger, timeout=10)
job_type_trigger_element.click(delay_after=0.3)
print(f"2. 悬停在职位大类 '{major_category}' 上")
job_type_dropdown_element = web_page.wait_for_element(job_type_dropdown, timeout=10)
major_category_element = job_type_dropdown_element.wait_for_element(f".//span[text()='{major_category}']", timeout=10)
major_category_element.hover(delay_after=0.3)
print(f"3. 在职位类型子面板中点击职位子类 '{sub_category}'")
job_type_sub_panel_element = web_page.wait_for_element(job_type_sub_panel, timeout=10)
# 修复:职位子类可能在不同的div.position-select-dropdown__list中,需要更宽泛的查找范围
# 原始XPath: .//a[text()='{sub_category}'] 仅在当前子面板的直接子元素中查找a标签
# 修正后XPath: .//div[@class="position-select-dropdown__list"]/a[text()='{sub_category}']
# 这样可以确保在子面板的任何一个子列表中找到目标子类
# 进一步修正:根据提供的截图和HTML,"风控"等子类直接位于span标签之后,而不是在div[@class="position-select-dropdown__list"]内部。
# 并且,子类可能在不同的grandson div中,所以需要查找所有grandson div下的a标签。
sub_category_element = job_type_sub_panel_element.wait_for_element(f".//div[contains(@class, 'position-select-dropdown__grandson')]//a[text()='{sub_category}']", timeout=10)
sub_category_element.click(delay_after=0.3)
print(f"4. 成功选择职位类型:大类 '{major_category}', 子类 '{sub_category}'")