羁.217 2023-10-14 22:46 采纳率: 80%
浏览 11

selenium定位下拉框及选择

selenium定位下拉框及选择

    # 打开Chrome浏览器
    driver = webdriver.Chrome("chromedriver.exe")

    # 浏览器访问html地址
    driver.get("https://www.ihchina.cn/project.html")
    time.sleep(5)
    # 根据select下拉框的class定位,获取元素列表
    select = driver.find_elements_by_class_name("select-native")[0]
    # 获取select的所有选项
    options_list = Select(select).options
    for option in options_list:
        print(option.text)  # 打印每个选项的文本值

    Select(select).select_by_index(0)

    # 获取当前选中的下拉框中的选项
    first = Select(select).first_selected_option.text
    print("当前选中的下拉框:", first)
    driver.quit()

运行上面的代码,不报错,就是option.text和first值为空。
而且按F12的时候“全部”这个选择没有出现在option当中

img


查看源代码,发现“全部”出现在了li标签里面。但是我需要选择“全部”这个选项,该怎么解决啊

img

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-10-15 09:11
    关注

    【以下回答由 GPT 生成】

    问题优化:

    要解决这个问题,我们可以使用Selenium的ActionChains类来模拟鼠标操作,将鼠标移动到下拉框的位置然后点击,接着再将鼠标移动到“全部”选项上并点击。

    以下是修改后的代码:

    # 打开Chrome浏览器
    driver = webdriver.Chrome("chromedriver.exe")
    
    # 浏览器访问html地址
    driver.get("https://www.ihchina.cn/project.html")
    time.sleep(5)
    
    # 根据select下拉框的class定位,获取元素
    select = driver.find_element_by_class_name("select-native")
    
    # 点击下拉框
    actions = ActionChains(driver)
    actions.move_to_element(select).click().perform()
    
    # 找到“全部”选项并点击
    all_option = driver.find_element_by_xpath("//li[contains(text(), '全部')]")
    actions.move_to_element(all_option).click().perform()
    
    # 等待页面加载完成
    time.sleep(5)
    
    # 获取当前选中的下拉框中的选项
    first = driver.find_element_by_class_name("select-native").get_attribute("value")
    print("当前选中的下拉框:", first)
    
    driver.quit()
    

    这样,代码就可以找到并选择“全部”这个选项了。在修改后的代码中,我们使用了ActionChains来模拟鼠标操作进行点击。我们首先将鼠标移动到下拉框的位置并点击,然后找到“全部”选项并再次点击。

    请注意,在点击“全部”选项之后,我在代码中加入了等待页面加载完成的时间,以确保页面能够正确加载出下拉框中选择的结果。你可以根据实际情况适当调整这个等待时间。



    【相关推荐】



    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 10月14日

悬赏问题

  • ¥20 关于web前端如何播放二次加密m3u8视频的问题
  • ¥20 spring boot集成mqtt的使用问题
  • ¥15 使用百度地图api 位置函数报错?
  • ¥15 metamask如何添加TRON自定义网络
  • ¥66 关于川崎机器人调速问题
  • ¥15 winFrom界面无法打开
  • ¥30 crossover21 ARM64版本安装软件问题
  • ¥15 mymetaobjecthandler没有进入
  • ¥15 mmo能不能做客户端怪物
  • ¥15 osm下载到arcgis出错