天天看點

Selenium Web元素操作

我們定位到Web頁面元素之後,可以對元素進行一系列的操作,實作跟頁面的互動。包括點選、文本輸入、元素屬性擷取等。常用的方法列舉如下:

方法 描述
click() 點選元素
send_keys(value) 用于向EditText(可編輯文本控件)輸入文本;還可以用于輸入檔案(如百度圖檔搜尋輸入圖檔)
get_attribute(name) 擷取元素屬性
is_selected() 元素是否被選擇,一般用于判斷checkbox 或者 radio 控件狀态
screenshot(filename) 截取元素

點選、輸入文本

  1. 打開 ​​https://www.baidu.com/​​
  2. 搜尋框輸入“test”
  3. 點選“百度一下”
  4. 關閉網頁
Selenium Web元素操作

python代碼:

self.driver.find_element_by_id("kw").send_keys("test")
self.driver.find_element_by_id("su").click(      

檔案上傳

input标簽可以直接使用​

​send_keys(檔案位址)​

​上傳檔案 打開百度圖檔搜尋,輸入圖檔位址

Selenium Web元素操作

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

Selenium Web元素操作

也可以儲存整個頁面視窗截圖

  • 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