如何在一张纸上将几张桌子分成几个阵列?

时间:2019-01-22 16:58:01

标签: python excel selenium xlwings

在一张纸上需要写几个表,这些表是这样的:enter image description here,我试图在一张纸上写Table.text,但是它是这样的:enter image description here 。 如何将其拆分为数组? 以及如何在同一张纸上写其他表格,例如从A20开始?

谢谢。

这些表是以下代码中的Table.text,TableDetail1.text,TableDetail2.text:

import datetime                                                                                                         
import xlwings as xw                                                                                                    
from selenium import webdriver                                                                                          
option = webdriver.ChromeOptions()                                                                                      
option.add_argument("headless")                                                                                         
driver = webdriver.Chrome(options=option)                                                                               
workbook = xw.Book(r'Table.xlsx')                                                                                       
sheet = workbook.sheets.active                                                                                          

Td = datetime.date.today()  # 得到今天日期                                                                                    
Yd = Td + datetime.timedelta(days=-1)  # 得到昨天日期                                                                         

driver.get('http://10.96.4.9')  # 打开目标首页                                                                                
inputElement = driver.find_element_by_name('password')  # 定位密码框                                                         
loginButton = driver.find_element_by_name('Submit')  # 定位提交按钮                                                           
inputElement.send_keys("123")  # 输入密码                                                                                   
loginButton.click()  # 点击提交                                                                                             

driver.switch_to.frame("main")  # 切到主frame                                                                              
driver.switch_to.frame("leftmain")  # 切到子frame                                                                          
driver.find_element_by_link_text('静态轨道衡数据查询').click()  # 定位静态轨道衡数据查询(焦炭)按钮并点击                                           
driver.switch_to.parent_frame()  # 切回父级frame                                                                            
driver.switch_to.frame("main")  # 切到主frame                                                                              
driver.find_element_by_link_text('原始数据查询').click()  # 定位原始数据查询按钮并点击                                                     
driver.switch_to.frame("searchhead")  # 切到搜索frame                                                                       
inputfromdate = driver.find_element_by_name('fromDate')  # 定位起始日期框                                                      
inputfromdate.click()  # 点击起始日期框                                                                                        
inputfromdate.clear()  # 清空起始日期框                                                                                        
inputfromdate.send_keys("2019-01-15")  # 输入昨天日期"2019-01-14"                                                             
inputtodate = driver.find_element_by_name('toDate')  # 定位截至日期框                                                          
inputtodate.click()  # 点击截至日期框                                                                                          
inputtodate.clear()  # 清空截至日期框                                                                                          
inputtodate.send_keys("2019-01-15")  # 输入昨天日期str(Yd)                                                                    
driver.find_element_by_name('idSearch').click()  # 定位查询按钮并点击                                                            
driver.switch_to.parent_frame()  # 切回父级frame                                                                            
driver.switch_to.parent_frame()  # 切回父级frame                                                                            
driver.switch_to.frame("main")  # 切到主frame                                                                              
driver.switch_to.frame("searchMain")  # 切到搜索主frame                                                                      
driver.switch_to.frame("list")  # 切到列表frame                                                                             
try:                                                                                                                    
    driver.find_element_by_name('back')  # 如果返回back按钮                                                                   
    print(u"无发货记录")  # 输出“无发货记录”                                                                                        
except:                                                                                                                 
    Content = driver.find_elements_by_id('data')  # 否则定位并定义id为“data”的表                                                  
    for Table in Content:  # 遍历此表                                                                                       
        print(Table.text)  # 输出此表                                                                                       
        sheet.range('A1').options(expand='table').value = Table.text                                                    
    try:                                                                                                                
        for count in range(2, 20):                                                                                      
            driver.find_element_by_xpath("//tbody/tr[%d]/td[2]/a" % count).click()  # 定位此表第一项并点击                        
            driver.switch_to.frame("main")  # 切到主frame                                                                  
            driver.switch_to.frame("searchMain")  # 切到搜索主frame                                                          
            driver.switch_to.frame("list")  # 切到列表frame                                                                 
            ItemNum = driver.find_element_by_xpath("//b")  # 定位并定义条目总数                                                  
            if int(ItemNum.text) <= 17:  # 如果条目总数<=17说明只有一页                                                             
                ContentDetail1 = driver.find_elements_by_xpath("//table[@width=\"100%\"]")  # 定位并定义条目明细表                
                for TableDetail1 in ContentDetail1:  # 遍历条目明细表                                                          
                    print(TableDetail1.text)  # 输出条目明细表                                                                 
            else:  # 否则条目总数>17说明超过一页                                                                                    
                driver.find_element_by_link_text('尾 页').click()  # 定位尾页按钮并点击                                            
                ContentDetail2 = driver.find_elements_by_xpath("//table[@width=\"100%\"]")  # 定位并定义条目明细表                
                for TableDetail2 in ContentDetail2:  # 遍历条目明细表                                                          
                    print(TableDetail2.text)  # 输出条目明细表                                                                 
                    driver.back()  # 返回上一页                                                                              
            driver.back()  # 返回上一页                                                                                      
            driver.switch_to.frame("main")  # 切到主frame                                                                  
            driver.switch_to.frame("searchMain")  # 切到搜索主frame                                                          
            driver.switch_to.frame("list")  # 切到列表frame  


except Exception as e:                                                                                              
    pass                                                                                                            

0 个答案:

没有答案