在一张纸上需要写几个表,这些表是这样的: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