python selenium操作表格式元素实例

Posted Believer007

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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)

.....

 

以上是关于python selenium操作表格式元素实例的主要内容,如果未能解决你的问题,请参考以下文章

Python Selenium 常用方法总结(不断补充)

selenium+python之元素定位方式介绍

Python+Selenium 自动化实现实例-获取页面元素信息(百度首页)

Python+Selenium练习(二十四)- 鼠标右键

Python+Selenium笔记:元素定位

python + selenium 元素定位方法