html 打开页面光标自动选中输入框_初识selenium之web自动化
今天我們學(xué)習(xí)下如何使用python編寫web自動化,談到web自動化,那么我們需要了解下市面上做web自動化的幾種方式,Robotframework工具,網(wǎng)紅WebUI自動化測試神器 - Cypress,以及我們今天所要學(xué)習(xí)的selenium,為什么使用selenium?上手快,開源免費(fèi),市面上使用率較高。
selenium的工作原理就是使用代碼,驅(qū)動瀏覽器的驅(qū)動器,對瀏覽器的頁面進(jìn)行定位以及操作。首先我們先配置下使用前的環(huán)境:
1,python環(huán)境(之前課程有提到,可翻閱之前文章)
2, 下載瀏覽器驅(qū)動:https://npm.taobao.org/mirrors/chromedriver?spm=a2c6h.14029880.0.0.735975d7ddL0Xs(可在百度直接搜索:NPM鏡像下載),下載完成之后放在所需python安裝主目錄下。
3, 安裝selenium:打開電腦cmd終端,直接輸入命令(pip install selenium)
????????注意:1,瀏覽器驅(qū)動要根據(jù)自身瀏覽器版本適配下載
????????????????? 2,驅(qū)動下載完成后,放在python安裝主目錄下面
??????????????????3,瀏覽器目前市面上主要以谷歌瀏覽器與火狐瀏覽器,下載驅(qū)動時,注意不同的瀏覽器的驅(qū)動不同
配置完成后,我們可以在cmd電腦終端查看,安裝是否正確,接下來我們以谷歌瀏覽器為例:
以上示例,我們先進(jìn)入python環(huán)境下,導(dǎo)入selenium中的webdriver驅(qū)動,然后定義一個變量driver = webdriver.Chrome(),這個時候我們運(yùn)行代碼,如果發(fā)現(xiàn)瀏覽器被我們打開了,那么說明我們的環(huán)境已經(jīng)配置完成,如果發(fā)現(xiàn)配置存在問題的同學(xué)可以參照如下示例:https://www.cnblogs.com/htybky/p/11747367.html
當(dāng)以上環(huán)境配置完成后,我們可以先參照一個實(shí)例:
from selenium import webdriver #導(dǎo)入驅(qū)動from time import sleep #導(dǎo)入一個等待時間的包driver = webdriver.Chrome() #打開瀏覽器driver.get('https://www.baidu.com/')sleep(5) #等待5秒以上代碼運(yùn)行結(jié)果我們可以看到,打開了谷歌瀏覽器,然后進(jìn)入了百度頁面。
selenium的原理是通過驅(qū)動對瀏覽器的頁面進(jìn)行操作,首先我們需要定位到也免得元素才能對頁面元素進(jìn)行,點(diǎn)擊,輸入等操作,那么我們先來了解下如何定位頁面元素,這里涉及到前端html的簡單知識。首先我們在瀏覽器中打開開發(fā)者工具F12,這里我們關(guān)注elements欄目,右邊部分則對應(yīng)這整個頁面的html元素信息。
我們可以通過開發(fā)者工具的左上角的箭頭,進(jìn)行元素的查看。
如上我們根據(jù)上述步驟,查看百度輸入框這一元素的html信息,開發(fā)者工具組則展示了類型為iuput,id的值為kw,name的值為wd,對于html只需進(jìn)行一個最簡單的了解即可。
那么接下來我們需要知道定位元素的8種方法:
1,Id? ? ?
2,Name
3,Classname
4,Tagname
5,linkText
6,partialLinkText
7,Xpath
8,cssSelector
以上八種元素均可進(jìn)行元素的定位,具體使用需根據(jù)實(shí)際html頁面情況,目前用的比較多的是xpath方法。
接下來我們針對百度這個頁面一一進(jìn)行演示:
id,name定位方式:
from selenium import webdriver #導(dǎo)入驅(qū)動driver = webdriver.Chrome() #打開瀏覽器driver.get('https://www.baidu.com/')driver.find_element_by_name('wd').send_keys('零基礎(chǔ)Python自動化') #輸入內(nèi)容driver.find_element_by_id('su').click() #點(diǎn)擊搜索首先我們可以看到定位元素使用的是find_element_by_的方法,然后采用id,name的方法定位到元素,send_keys()是針對輸入框進(jìn)行的輸入操作,括號內(nèi)的值只能是string類型,click()則是點(diǎn)擊的操作,我們在百度輸入框中輸入'零基礎(chǔ)Python自動化',然后點(diǎn)擊搜索。
Classname定位:
仔細(xì)查看你會發(fā)現(xiàn)存在一個class='s_ipt',以下實(shí)例:
driver.find_element_by_class_name('s_ipt').send_keys('零基礎(chǔ)Python自動化')????#輸入內(nèi)容tagName定位:
如果某個頁面的元素此標(biāo)簽類型只有一個,那么我們也可以使用tagName進(jìn)行定位:
driver.find_element_by_tag_name('input')????linkText定位:
linktext是指超鏈接文本定位,是某個文本具有超鏈接性質(zhì),可以通過此定位
"http://mp.weixin.qq.com/mp/homepage?__biz=MzI2MjY3OTU1Nw==&hid=2" class="gray" target="_blank">零基礎(chǔ)Python自動化</a>以上展示html元素,則linktext定位如下:
driver.find_element_by_link_text('零基礎(chǔ)Python自動化')partialLinkText定位:
模糊超鏈接文本定位,我們以上個超連接的html示例進(jìn)行定位
driver.find_element_by_partial_link_text('零基礎(chǔ)Python')xpath定位:
接下來我們可以重點(diǎn)了解一下xpath定位元素,目前公司里的項(xiàng)目幾乎都可以使用xpath進(jìn)行定位,xpath可以使用絕對路徑,也可以使用相對路徑。
以上我們看到的就是選擇xpath的定位方式,然后進(jìn)行下面代碼的編輯!
driver.find_element_by_xpath('//*[@id="kw"]').send_keys('零基礎(chǔ)Python自動化') #輸入內(nèi)容css定位:
如上圖我們既可以copy_xpath,也可以copy_selector
driver.find_element_by_css_selector('#kw')以上的知識學(xué)會,我們就可以做一個簡單的selenium自動化了。那么今天的學(xué)習(xí)先到這里,希望大家可以多看多練!
? ? ? ? ? ? ? ??關(guān)注下方,學(xué)習(xí)更多知識!
與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的html 打开页面光标自动选中输入框_初识selenium之web自动化的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: celeba数据集_Kaggle最新秃头
- 下一篇: jdbc版本怎么看_Jmeter(十三)