我們定位到Web頁面元素之後,可以對元素進行一系列的操作,實作跟頁面的互動。包括點選、文本輸入、元素屬性擷取等。常用的方法列舉如下:
方法 | 描述 |
click() | 點選元素 |
send_keys(value) | 用于向EditText(可編輯文本控件)輸入文本;還可以用于輸入檔案(如百度圖檔搜尋輸入圖檔) |
get_attribute(name) | 擷取元素屬性 |
is_selected() | 元素是否被選擇,一般用于判斷checkbox 或者 radio 控件狀态 |
screenshot(filename) | 截取元素 |
點選、輸入文本
- 打開 https://www.baidu.com/
- 搜尋框輸入“test”
- 點選“百度一下”
- 關閉網頁
python代碼:
self.driver.find_element_by_id("kw").send_keys("test")
self.driver.find_element_by_id("su").click(
檔案上傳
input标簽可以直接使用
send_keys(檔案位址)
上傳檔案 打開百度圖檔搜尋,輸入圖檔位址
python代碼:
self.driver.get("https://image.baidu.com/")
self.driver.find_element_by_xpath("//*[@id='sttb']/img[1]").click()
self.driver.find_element_by_id("stfile").send_keys(u"D:/TestingDemo/img/圖檔.png"
get_attribute()
擷取元素屬性 比如擷取“百度一下”這個button的屬性:type、id、value、class python代碼:
baidu = self.driver.find_element_by_id("su")
baidu.get_attribute("type")
baidu.get_attribute("id")
baidu.get_attribute("value")
baidu.get_attribute("class"
is_selected()
在勾選單選框(radio)和複選框(checkbox)的時候,如果已經被選中,再次點選就會反選了,是以在點選之前需要判斷一下是否已經選中。可以使用is_selected()方法來判斷是否被選中 python代碼:
def checkbox_switch(self,switch="ON"):
self.driver = webdriver.Chrome()
sw = self.driver.find_element_by_id('id_of_checkbox').is_selected()
flag = False
if switch == "ON":
flag = True
if sw^flag:
self.driver.find_element_by_id('id_of_checkbox').click()
self.driver.quit(
screenshot()
截取元素 python代碼:
self.driver = webdriver.Chrome()
self.driver.get("https://www.baidu.com")
element = self.driver.find_element_by_id("su") # 百度一下的按鈕
element.screenshot('D:\\baidu.png'
結果圖baidu.png
也可以儲存整個頁面視窗截圖
- get_screenshot_as_base64()
- get_screenshot_as_file(*filename*)
- get_screenshot_as_png()
- save_screenshot(*filename*)
self.driver.save_screenshot('baidu.png'
其他常用方法
#關閉selenium打開的所有視窗
driver.quit()
# 僅關閉目前視窗
driver.close()
# 前進
driver.forward()
# 後退
driver.back()
# 重新整理
driver.refresh()
# 頭名字
driver.title
# 擷取cookie
driver.get_cookies()
# 傳回目前頁面url
driver.current_ur
控件操作
# 清空輸入框資料
element.clear()
# 擷取文本的值
element.text
# 表單送出
element.submit(
文章标題:Selenium Web元素操作
本文作者:hiyo