zoukankan      html  css  js  c++  java
  • 关于selenium自动化对下拉选择框的处理

    有时候定位元素我们会遇到一种常见的下拉框。这里没找到啥好网站,就以臭名昭著的58同城为例。下拉框长下图这样:

    有图可见只要我们点击省份就会,出现很多选项。下面说下这种下拉框怎么处理

    首先先要点击省份,然后才会出现下拉框选项。driver.find_element_by_xpath('//div[text()="省份"]').click()。然后就是对下拉框选项的定位,

    tags = driver.find_elements_by_xpath('//ul[@class="selector-box"]/li'),这里用的elements复数定位会返回一个列表,里面存储的就是下拉框选项的值。

    我们要进行定位的话,第一种方式,可以根据下标定位返回列表的值,tags[1].click(),这里[1]就是选的福建。

    第二种方式,先for循环利用里面的文本定位。

    for tag in tags:

      if tag.text=='海南':

        tag.click()

    代码如下:

    from selenium import webdriver
    from time import sleep
    
    
    driver = webdriver.Chrome()
    driver.get('https://hz.58.com/?utm_source=market&spm=u-2d2yxv86y3v43nkddh1.BDPCPZ_BT')
    driver.maximize_window()
    driver.implicitly_wait(1)
    driver.find_element_by_xpath('//a[text()="切换城市"]').click()
    driver.find_element_by_xpath('//div[text()="省份"]').click()
    tags = driver.find_elements_by_xpath('//ul[@class="selector-box"]/li')
    
    # todo 第一种方式
    tags[1].click()
    
    # todo 第二种方式
    for tag in tags:
        if tag.text=='海南':
            tag.click()
    
    
    # for tag in tags:
    #     if tag.get_attribute('data-city')=='G':
    #         tag.click()

      

    alert弹出窗操作:

     

  • 相关阅读:
    数据库的视图概念作用
    常见的反爬虫和应对方法
    referrer policy
    JSON
    异步消息处理机制
    Acitivity(活动)
    springboot @Autowired 空指针异常问题处理
    CentOS7 宝塔 ThinkPHP SQLServer 2000 安装FreeTDS
    PHP THINKPHP 函数 dump var_dump var_export
    ThinkPHP5 WHERE AND OR 实现多条件查询
  • 原文地址:https://www.cnblogs.com/xiamaojjie/p/11427012.html
Copyright © 2011-2022 走看看