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)

.....

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM