一视哑、安裝selenium環(huán)境
pip3 install selenium
二宛逗、驅(qū)動準(zhǔn)備,這里以Firefox為例
首先安裝Firefox依賴的geckodriver:
網(wǎng)上查了很多安裝geckodriver的方式坑太多饥努,這里建議brew安裝:
Mac下安裝Homebrew(終端命令):
/usr/bin/ruby-e"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
如果卸載Homebrew(終端命令):
/usr/bin/ruby-e"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"
Homebrew使用:
安裝軟件:brew install xxx
卸載軟件:brew uninstall xxx
搜索軟件:brew search xxx
更新軟件:brew upgrade xxx
查看安裝列表:brew list
更新Homebrew:brew update
brew安裝geckodriver:
brew install geckodriver
設(shè)置配置文件(~/.bash_profile):
export PATH=$PATH:/path/to/geckodriver
執(zhí)行test.py文件調(diào)用Firefox:
這里采用Sublime編寫Python腳本胳泉,詳請查看:
#編碼格式
# encoding: utf-8
#導(dǎo)入selenium模塊之webdriver
from selenium import webdriver
#實例化一個FireFox WebDriver對象
driverTest = webdriver.Firefox()
#設(shè)置瀏覽器起始位置
driverTest.set_window_position(x=50,y=50)
#設(shè)置瀏覽器窗口大小
driverTest.set_window_size(width=50, height=50)
#用來導(dǎo)航到給定的url地址的網(wǎng)頁(WebDriver 將會等待直到頁面全部加載完成后才會把控制權(quán)返回給腳本)
driverTest.get("https://www.baidu.com/index.php?tn=monline_3_dg")
#輸出導(dǎo)航標(biāo)題
print("%s"%driverTest.title)
#退出瀏覽器
driverTest.quit()
三、webdriver實例對象之語法
在webdriver中们何,通過以下函數(shù)定位尋找所需元素,即定位元素的8種方式:
#id定位(元素唯一id):
find_element_by_id
#name定位(元素的名稱):
find_element_by_name
#XPath定位(元素屬性):
find_element_by_xpath
#link定位(鏈接文本內(nèi)容):
find_element_by_link_text
find_element_by_partial_link_text
#tag定位(頁面html文檔下的各種標(biāo)簽):
find_element_by_tag_name
#class定位(元素類名):
find_element_by_class_name
#使用綁定id來找元素:
find_element_by_css_selector
下面我們用以上函數(shù)做下測試:
1萄焦、模擬簡書登錄:
先查看頁面源代碼獲取以下信息:
獲取簡書用戶名、賬號及登錄元素:
2冤竹、模擬簡書登錄/注冊切換:
3拂封、class定位測試:
4、其他定位測試取元素寫法:
loginInfro:
driver.find_element_by_xpath("/html/body/form[1]")
driver.find_element_by_xpath("http://form[1]")
driver.find_element_by_xpath("http://form[@id='loginInfro']")
userName:
driver.find_element_by_xpath("http://form[input/@name='userName']")
driver.find_element_by_xpath("http://form[@id='loginForm']/input[1]")
driver.find_element_by_xpath("http://input[@name='userName']")
btn:
driver.find_element_by_xpath("http://input[@name='continue'][@type='btn']")
driver.find_element_by_xpath("http://form[@id='loginForm']/input[4]"
小白一只鹦蠕,不足之處歡迎指正冒签!期待Python愛好者一起學(xué)習(xí)進(jìn)步~