zoukankan      html  css  js  c++  java
  • python selenium操作表格式元素实例

    很多时候,网页上的布局都是表格形式的,如出下面这样的

    这种网页类型在自动化中比较头痛,需要很多判断,下面就举个例子,这里以深圳出入境网页为例,http://yysl.sz3e.com/wsyysq/select_sldw_zbs.jsp

    比如我们需要点击某个星期六的任意一个可以预约的时段,该怎么写呢。

    首先我们要分析,这也是写程序的第一步,将手工操作进行逻辑提取,再形成程序

    1、先判断列表中的日期,找到星期六的列

    2、再从找到的列中判断可预约的时间点

    基本思路就是这样,来看第一点,怎么提取表格式的日期时间呢?

    使用firepath看看

    所以可以用current找到所有的id,xpath://label[@class='current']


    接下来怎么把一列数据找出来呢?

    从html中可以看到这是一个标准的w3c 表格形式

    可以使用以下方式将一列数据定位出来

    //tbody[@id='timeline']/tr/td[1]   其中1表示第1列,可根据需要拿出对应的列

    因次,基本的代码如下:

    all_data=browser.find_elements(By.XPATH, "//label[@class='current']")   #把所有日期元素对像选取出来
    
    rowall=[rowall.text for rowall in all_data]  #把对应的日期元素取出
    
    rowindex=[rowall.index(i) for i in rowall if u'星期六' in i]  #获取列
    
    '''
    判断周六是否可预约,没有隔2s刷新
    '''
    while True:
        tds=browser.find_elements(By.XPATH,"//tbody[@id='timeline']/tr/td[%d]" % (rowindex[0]+1))
        if [td for td in tds if "可预约" in td.text]:break
        else:
            browser.find_element_by_xpath("//span[@receivepointsid='440307000000']").click()
            time.sleep(2)
    
    .....
  • 相关阅读:
    List
    迭代器Iterator
    Collection方法
    Collection体系
    Date DateFormat SimpleDateFormat
    Calendar
    BigInteger & BigDecimal
    System类
    正则2 -- pattern和Matcher
    关于团队组成
  • 原文地址:https://www.cnblogs.com/landhu/p/5781375.html
Copyright © 2011-2022 走看看