Selenium 作為一款 Web 自動化測試框架,提供了諸多操作瀏覽器的方法,本節(jié)對其中的常用方法做詳細介紹。
定位節(jié)點
Selenium 提供了 8 種定位單個節(jié)點的方法,如下所示:
定位節(jié)點方法
方法 說明
find_element_by_id() 通過 id 屬性值定位
find_element_by_name() 通過 name 屬性值定位
find_element_by_class_name() 通過 class 屬性值定位
find_element_by_tag_name() 通過 tag 標簽名定位
find_element_by_link_text() 通過標簽內文本定位,即精準定位。
find_element_by_partial_link_text() 通過標簽內部分文本定位,即模糊定位。
find_element_by_xpath() 通過 xpath 表達式定位
find_element_by_css_selector() 通過 css 選擇器定位
假設下面代碼某個頁面的代碼片段,如下所示:
{‘width’: 500, ‘height’: 22}
Selenium事件處理
Selenium WebDriver 提供了一些事件處理函數(鼠標、鍵盤等),下面我們對常用的事件函數做簡單介紹。
- 鼠標事件
Selenium WebDriver 將關于鼠標的操作方法都封裝在 ActionChains 類中,使用時需要引入 ActionChains 類,如下所示:
from selenium.webdriver.common.action_chains import ActionChains
該類包含了鼠標操作的常用方法:
鼠標事件
方法 說明
ActionChains(driver) 構造 ActionChains 鼠標對象。
click() 單擊
click_and_hold(on_element=None) 單擊鼠標左鍵,不松開
context_click() 右擊
double_click() 雙擊
drag_and_drop() 拖動
move_to_element(above) 執(zhí)行鼠標懸停操作
context_click() 用于模擬鼠標右鍵操作, 在調用時需要指定元素定位。
perform() 將所有鼠標操作提交執(zhí)行。
示例如下:
from selenium import webdriver
#導入 ActionChains 類
from selenium.webdriver.common.action_chains import ActionChains
driver = webdriver.Chrome()
driver.get(“http://c.biancheng.net”)
通過xpath表達式定位到要懸停的元素
above = driver.find_element_by_xpath(‘//ul[@id=“ad-link-top”]/li[1]’)
對定位到的元素執(zhí)行鼠標懸停操作
ActionChains(driver).move_to_element(above).perform()
2) 鍵盤事件
Selenium WebDriver 的 Keys 模塊提供了模擬鍵盤輸入的 send_keys() 方法,除此之外,該模塊也提供了操作鍵盤的其他方法,比如復制、粘貼等等。
在使用之前,首先需要導入 Keys 類,如下所示:
from selenium.webdriver.common.keys import Keys
下面列舉了一些常用方法:
鍵盤操作
方法 說明
send_keys(Keys.BACK_SPACE) 刪除鍵(BackSpace)
send_keys(Keys.SPACE) 空格鍵(Space)
send_keys(Keys.TAB) 制表鍵(Tab)
send_keys(Keys.ESCAPE) 回退鍵(Esc)
send_keys(Keys.ENTER) 回車鍵(Enter)
send_keys(Keys.CONTROL,‘a’) 全選(Ctrl+A)
send_keys(Keys.CONTROL,‘c’) 復制(Ctrl+C)
send_keys(Keys.CONTROL,‘x’) 剪切(Ctrl+X)
send_keys(Keys.CONTROL,‘v’) 粘貼(Ctrl+V)
send_keys(Keys.F1…Fn) 鍵盤 F1…Fn
keys.down(value,element=None) 按下鍵盤上的某個鍵
keys.up(value,element=None) 松開鍵盤上的某個鍵
示例如下:
from selenium import webdriver
引入 Keys 模塊
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome()
driver.get(“http://www.baidu.com”)
輸入框輸入內容
driver.find_element_by_id(“kw”).send_keys(“C語言中文網H”)
刪除多輸入的一個H
driver.find_element_by_id(“kw”).send_keys(Keys.BACK_SPACE)
#單擊“百度”一下查找
driver.find_element_by_id(“su”).click()
time.sleep(3)
driver.quit()
其它鍵盤操作方法,如下所示:
純文本復制
輸入空格鍵 + “Python教程”
driver.find_element_by_id(“kw”).send_keys(Keys.SPACE)
driver.find_element_by_id(“kw”).send_keys(“Python教程”)
ctrl+a 全選輸入框內容
driver.find_element_by_id(“kw”).send_keys(Keys.CONTROL, ‘a’)
ctrl+x 剪切輸入框內容
driver.find_element_by_id(“kw”).send_keys(Keys.CONTROL, ‘x’)
ctrl+v 粘貼內容到輸入框
driver.find_element_by_id(“kw”).send_keys(Keys.CONTROL, ‘v’)文章來源:http://www.zghlxwxcb.cn/news/detail-525405.html
使用回車鍵來代替單擊操作click
driver.find_element_by_id(“su”).send_keys(Keys.ENTER)文章來源地址http://www.zghlxwxcb.cn/news/detail-525405.html
到了這里,關于Python Selenium基本用法的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!