天天看點

使用selenium模拟對浏覽器的操作關于seleniumselenium快速入門Reference

關于selenium

selenium是一個用于Web應用程式測試的工具,selenium測試直接運作再浏覽器上,就像真正的使用者在操作一樣。(百度百科)

安裝selenium

使用pip安裝selenium。

pip install selenium

安裝浏覽器驅動

Chrome驅動下載下傳位址:http://npm.taobao.org/mirrors/chromedriver/

Firefox驅動下載下傳位址:https://github.com/mozilla/geckodriver/releases/

IE驅動下載下傳位址:http://selenium-release.storage.googleapis.com/index.html

找到對應的浏覽器、版本下載下傳。

下載下傳完成後,需要做兩件事:1.将驅動放複制到浏覽器根目錄下;2.将驅動複制到Python根目錄下。

使用selenium模拟對浏覽器的操作關于seleniumselenium快速入門Reference
使用selenium模拟對浏覽器的操作關于seleniumselenium快速入門Reference

注意: 若浏覽器的安裝路徑非預設路徑,則需要将浏覽器的安裝路徑添加到環境變量path中。

測試環境是否搭建成功

指令:

from selenium import webdriver
browser = webdriver.Chrome()
           

第二行可根據自身浏覽器自行修改,例如:Ie()、Firefox()、Poera()等。若看到如下圖所示啟動了浏覽器則表明環境搭建成功。

使用selenium模拟對浏覽器的操作關于seleniumselenium快速入門Reference

selenium快速入門

定位元素

方法 說明
find_element_by_id 使用id定位元素
find_element_by_name 使用name定位元素
find_element_by_xpath 使用xpath定位元素
find_element_by_link_text 使用完整連結文本定位元素
find_element_by_partial_link_text 使用部分連結文本定位元素
find_element_by_tag_name 使用标簽名定位元素
find_element_by_class_name 使用類名定位元素
find_element_by_css_selector 使用css選擇器定位元素

例如:通過xpath定位:

from selenium import webdriver
# 打開一個浏覽器
browser = webdriver.Chrome()
# 使用get方式打開一個站點
browser.get("https://www.baidu.com/")
# 使用xpath定位元素
inputTag = browser.find_element_by_xpath('//*[@id="kw"]')

           

滑鼠事件

方法 說明
ActionChains(driver) 構造ActionChains對象
context_click() 右鍵
move_to_element(above) 滑鼠懸停
double_click() 輕按兩下
drag_and_drop() 拖動
perform() 執行所有ActionChains中的存儲行為,可以了解成是對豬呢個操作的送出動作

例如我們首先通過xpath定位到一個表單的送出按鈕,執行click(),即可送出表單

# 定位送出按鈕
firstEntrance = browser.find_element_by_xpath('/html/body/form/div[3]/table/tbody/tr/td[1]/input')
# 單擊送出按鈕
firstEntrance.click()
           

鍵盤事件

send_keys()方法可以模拟對表單的填寫,也可以模拟鍵盤的操作。

方法 說明
send_keys(Keys.BACK_SPACE) 删除鍵backspace
send_keys(Keys.SPACE) 空格
send_keys(Keys.TAB) 制表鍵TAB
send_keys(Keys.ESCAPE) 回退ESC
send_keys(Keys.ENTER) 回車
send_keys(Keys.Fn) 鍵盤功能鍵Fn
send_keys(Keys.CONTROL,‘a’) 全選
send_keys(Keys.CONTROL,‘c’) 複制
send_keys(Keys.CONTROL,‘x’) 剪切
send_keys(Keys.CONTROL,‘v’) 粘貼

警告框處理

彈窗警告框有三種,alert()、confirm()、prompt()

alert()框隻有一個确認按鈕,用來警告;confirm()用于确認,有是/否的選項,prompt()可以用來輸入文本。

方法 說明
switch_to_alert() 切換到彈窗
text 擷取對話框文本值
accept() 接受彈窗報警
dismiss() 解除彈窗報警
send_keys() 輸入值(隻适用于prompt)
from selenium import webdriver
browser = webdriver.Chrome()
browser.get('...')
browser.find_element_by_xpath('...')
#切換到彈窗
alert = browser.switch_to_alert()
# 列印警告框文本
print(alert.text)
#若為alert彈窗
alert.accept()# 接受彈窗
#若為confirm彈窗
alert.accept()# 确認
alert.dismiss()# 取消
#若為prompt
alert.send_keys('11111')
alert.accept()# 輸入11111并送出
alert.dismiss()# 解除警告

           

下拉框處理

selenium中對下拉框有專門的處理,需要用到下拉框的類Select

from selenium.webdriver.support.select import Select

方法 說明
select_by_value() 通過value屬性選擇
select_by_index() 通過索引選擇,從0開始
select_by_visible_text() 通過可見的文本進行選擇

關閉浏覽器

方法 說明
quit() 關閉所有視窗
close() 關閉單個視窗

Reference

https://blog.csdn.net/wangshufen20091651/article/details/82897199

https://blog.csdn.net/weixin_36279318/article/details/79475388

http://www.testclass.net/selenium_python/selenium3-browser-driver/

https://blog.csdn.net/u010694922/article/details/79485003

https://blog.csdn.net/chenjuan0530/article/details/79553157