Selenium 實戰到吹牛系列:七

Selenium 實戰到吹牛系列


PS:遍歷 HTML 整個表格(Table)html

例子

HTML:python

<html>
<head>
<title>測試頁面</title>
</head>
<body>
	<meta charset="UTF-8">
    <table border="3">
      <thead>
        <tr>
          <th>類型</th>
          <th>週一</th>
          <th>週二</th>
          <th>Option</th></tr>
      </thead>
      <tbody>
        <tr>
          <td>蘋果</td>
          <td>1</td>
          <td>2</td>
          <td><input type="checkbox">A選項</input></td>
          </tr>
        <tr>
          <td>水梨</td>
          <td>3</td>
          <td>21</td>
          <td><input type="checkbox">B選項</input></td>
        <tr>
          <td>香蕉</td>
          <td>43</td>
          <td>123</td>
          <td><input type="checkbox">C選項</input></td>
        <tr>
          <td>西紅柿</td>
          <td>16</td>
          <td>39</td>
          <td><input type="checkbox">D選項</input></td>
</body>
</html>

代碼:web

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Date : 2019-07-05 16:12:33
# @Author : BenLam
# @Link : https://www.cnblogs.com/BenLam/

from selenium import webdriver
driver=webdriver.Firefox()
driver.get(r'test.html')

#定位並獲取表格參數
tr = driver.find_elements_by_tag_name('tr')
#for循環輸出表裏的文字
tr_text_list = [row.text for row in tr for col in row.find_elements_by_tag_name('td')]
print(tr_text_list)

#方法二:
tr = driver.find_elements_by_tag_name('tr')

for row in tr:
    for col in row.find_elements_by_tag_name('td'):
        print(col.text + '\t',end='')
    print('\n')

driver.quit()

輸出結果:

>>>['蘋果 1 2 A選項', '蘋果 1 2 A選項', '蘋果 1 2 A選項', '蘋果 1 2 A選項', '水梨 3 21 B選項', '水梨 3 21 B選項', '水梨 3
 21 B選項', '水梨 3 21 B選項', '香蕉 43 123 C選項', '香蕉 43 123 C選項', '香蕉 43 123 C選項', '香蕉 43 123 C選項', '西
紅柿 16 39 D選項', '西紅柿 16 39 D選項', '西紅柿 16 39 D選項', '西紅柿 16 39 D選項']
>>>

例子_B

PS: 勾選【Option】裏邊的選項shell

代碼:bash

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Date : 2019-07-05 16:12:33
# @Author : BenLam
# @Link : https://www.cnblogs.com/BenLam/

from selenium import webdriver
driver=webdriver.Firefox()
driver.get(r'test.html')

#定位並獲取表格參數
tr = driver.find_elements_by_tag_name('tr')
#for循環輸出表裏的文字
tr_text_list = [row.text for row in tr for col in row.find_elements_by_tag_name('td')]
print(tr_text_list)

#勾選【A選項】
Option = driver.find_element_by_xpath(r'//*[@type="checkbox"][1]').click()

driver.quit()

例子_C

PS: 獲取表格中的列
代碼:測試

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Date : 2019-07-05 16:12:33
# @Author : BenLam
# @Link : https://www.cnblogs.com/BenLam/

from selenium import webdriver
driver=webdriver.Firefox()
driver.get(r'test.html')

#定位並獲取表格參數
tr = driver.find_elements_by_tag_name('tr')

# 獲取表中全部的 「thead -> th」
thead = tr[0].find_elements_by_tag_name('th')
print(len(thead))

# 獲取某個單元格的值
tr_text = tr[1].find_elements_by_tag_name('td')[0].text
print(tr_text)

# 循環獲取表格中的第一列
for num in range(1, len(tr)):
    print(tr[num].find_elements_by_tag_name('td')[0].text)

driver.quit()

輸出結果:

>>>print(len(thead))
4
>>>print(tr_text)
'蘋果'
>>> for num in range(1, len(tr)):
...     print(tr[num].find_elements_by_tag_name('td')[0].text)
...
'蘋果'
'水梨'
'香蕉'
'西紅柿'
相關文章
相關標籤/搜索