码迷,mamicode.com
首页 > 编程语言 > 详细

python selenium操作表格式元素实例

时间:2016-08-26 10:22:40      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:

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

技术分享

这种网页类型在自动化中比较头痛,需要很多判断,下面就举个例子,这里以深圳出入境网页为例,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)

.....

 

python selenium操作表格式元素实例

标签:

原文地址:http://www.cnblogs.com/landhu/p/5781375.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!