1. 程式人生 > >Selenium入門記錄_007_控制一組元素

Selenium入門記錄_007_控制一組元素

環境配置問題見 這裡

有時我們需要批量選擇多個元素,一個一個抓就顯得很浪費時間,selenium也提供了可以一次選中多個元素的方法。下面舉兩個例子。

為了方便測試自己寫好html,放在py檔案同一資料夾下面方便呼叫。

<!DOCTYPE html>
<html>
<body>

<form action="/demo/demo_form.asp">
<input type="checkbox" name="vehicle" value="Bike">I have a bike
<br>
<input type
="checkbox" name="vehicle" value="Car">
I have a car <br> <input type="checkbox" name="vehicle" value="Buggy">I have a Buggy <br><br> <input type="submit"> </form> </body> </html>

然後是程式碼:

第一種是用find_elements_by_tag_name

# coding=utf-8
from selenium import
webdriver import time import os driver = webdriver.Chrome() # 利用python的os下的功能,開啟本地html檔案進行測試 file_path = 'file:///' + os.path.abspath('index.html') driver.get(file_path) # find_elements_by_tag_name獲取組的方法,別忘了elements的s,別問我怎麼知道的 inputs = driver.find_elements_by_tag_name('input') for i in inputs: # 判斷輸入框型別,如果是checkbox就勾選
if i.get_attribute('type') == 'checkbox': i.click() time.sleep(5) driver.quit()

第二種是用find_elements_by_xpath的方法

# coding=utf-8
from selenium import webdriver
import time
import os

driver = webdriver.Chrome()
# 利用python的os下的功能,開啟本地html檔案進行測試
file_path = 'file:///' + os.path.abspath('index.html')

driver.get(file_path)
# find_elements_by_xpath獲取組的方法
inputs = driver.find_elements_by_xpath("/html/body/form/input[@type='checkbox']")
for i in inputs:
        i.click()
time.sleep(5)

driver.quit()

兩種都可以全選選擇框,效果如圖:
這裡寫圖片描述
方法很多,但大同小異,需要根據不同的場景,選擇合適的方法。

相關推薦

Selenium入門記錄_007_控制元素

環境配置問題見 這裡 有時我們需要批量選擇多個元素,一個一個抓就顯得很浪費時間,selenium也提供了可以一次選中多個元素的方法。下面舉兩個例子。 為了方便測試自己寫好html,放在py檔案同一資料夾下面方便呼叫。 <!DOCTYPE

selenium測試(Java)-- 元素操作(十

tro itl gen () utf-8 oot clas color doctype 利用下面的例子來編寫測試腳本 頁面代碼: <!DOCTYPE html> <html> <head> <meta http-equiv="c

Selenium入門系列4 選擇並操作元素

selenium num lec 點擊 doctype img web selector mage 選中一組元素的方式也是8種,與選中單個元素一一對應。區別只在於element與elements。elements取到的是一個數組,element取符合條件的第一個元素。

Selenium 定位元素

image end fin sel bubuko 文件 color lee edr 到目前為止,我們已經知道了怎麽去定位一個元素,有時候我們需要獲取頁面上的多個元素,該怎麽辦呢?難道還一個一個地去定位,那也太lower了吧。 webdriver提供了定位一組元素的方法,跟前

【2018.05.09】python3.6+selenium 定位元素,獲取url,並隨機點選某個url

elements       學好定位問題   #coding = utf-8 ''' 定位多個元素(百度) 實現網路上的程式碼 ''

Selenium入門記錄_006_設定元素等待(淺析)

環境配置問題見 這裡 Selenium2 Python自動化測試實戰(第二版) 蟲師—— 如今大多數的web 應用程式使用AJAX 技術。當瀏覽器在載入頁面時,頁面內的元素可能並不是同時 被載入完成的, 這給元素的定位新增的困

Selenium通過定位元素,再執行相應操作

from selenium import webdriver from selenium.webdriver.support.ui import WebDriverWait from time import sleep driver = webdriver.Chrome() #本地網頁 file

Selenium 3----定位元素+多表單切換+多窗口切換

web sel each switch cli sele pytho acc 進行 定位一組元素 和定位單個元素類似,WebDriver提供了8種用於定位一組元素的方法。定位一組元素的方法與定位單個元素的方法類似,唯一的區別是在單詞element後

Java集合復習Collection(2)添加元素

ray addall 調整 supported cnblogs rust 數組 dal sta 1 import java.util.*; 2 class Snow{} 3 class Powder extends Snow{} 4 class Crusty ex

Selenium入門系列5 下拉列表元素操作

鼠標 tag pan inline driver 學習 ima imp inner 本節課程的下拉框是那種默認隱藏,當鼠標移到菜單上下拉框才顯示的。如果直接getelement會報錯,提示元素不可見: so,得先讓下拉列表顯示出來再獲取元素 用到的新知識: is_

Selenium入門記錄_005_獲取驗證資訊

環境配置問題見 這裡 需要達到自動化的目的,通過獲取目標點的資訊,確認測試結果很有必要。先以網站的名稱、url和使用者名稱為例。以得到使用者名稱來確認登入成功這一操作。以後應該會拓展到截圖記錄,將結果匯出到檔案之類的。 #coding=utf-8

定義元素的方法

select xpath selector 是什麽 tag from span 自動 學習 前面已經學習過定位單個元素的方法,那麽怎麽定位一組呢?對,就是把element變為elements 那麽,定位一組元素的方法有以下8種: find_elements_by_i

)Python入門-3序列:04列表-元素刪除的3種方式-刪除本質是數元素拷貝

inf 一個 分享圖片 元素 存在 traceback call span ror 一:del刪除   刪除列表指定位置的元素。 1 >>> a = [100,200,888,300,400] 2 3 >>> d

)Python入門-3序列:10元-元素訪問-計數方法-切片操作-成員資格判斷-zip()

mod trac peer 計數 assign item sig traceback span 一:元組的元素訪問和計數   1. 元組的元素不能修改 1 >>> a = (20,10,30,9,8) 2 3 >>

MSSQL分組取後每的最新記錄

top 分享 mssql 方法 esc box nan 技術分享 -c 數據庫中二張表,用戶表和獎金記錄表,獎金記錄表中一個用戶有多條信息,有一個生效時間,現在要查詢: 獎金生效時間在三天前,每個用戶取最新一條獎金記錄,且用戶末鎖定 以前用的方法是直接寫在C#代碼中的:

android的入門記錄

下載到本地 可能 安裝 subst 數據 工具包 一次 以及 由於 ---恢復內容開始--- 首先,這是我人生中的第一篇博客,也許嚴格意義上它並不算是一篇博客,但也代表著一些東西。 前言 我們往往在開始學習一門新的語言或者課程時會遇見各式各樣的問題,比

JavaScript 從入門到放棄()事件委托和使用innerHTML添加元素

ont ntb innerhtml col 添加元素 pan div 基本 開發 一、使用事件委托 一個簡單的需求,比如想給ul下面的li加上點擊事件,點擊哪個li,就顯示那個li的innerHTML。這個貌似很簡單!代碼如下! <!DOCTYPE html>

尋找個數中未出現的最小正整數(數元素可重復)

個數 pre doesn inf tput swe return 分享圖片 針對 題目描述 Description Given nn non-negative integers, please find the least non-negative integer that

Openstack入門篇(十)之neutron服務(控制節點)的部署與測試

驅動 username 禁止 普通 虛擬主機 group 查看 禁用 poi 1.Neutron的介紹   Neutron 為整個 OpenStack 環境提供網絡支持,包括二層交換,三層路由,負載均衡,防火墻和 *** 等。Neutron 提供了一個靈

Kafka:ZK+Kafka+Spark Streaming集群環境搭建(二十五)Structured Streaming:同一個topic中包含數據的多個部分,按照key它們拼接為記錄(以及遇到的問題)。

eas array 記錄 splay span ack timestamp b- each 需求: 目前kafka的topic上有一批數據,這些數據被分配到9個不同的partition中(就是發布時key:{m1,m2,m3,m4...m9},value:{records