日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Python使用Selenium模擬瀏覽器輸入內(nèi)容和鼠標(biāo)點(diǎn)擊 !

 flyk0tcfb46p9f 2019-05-13

Selenium庫(kù)是一套Web自動(dòng)化測(cè)試工具,有很多功能,它可以幫我們模擬在瀏覽器輸入內(nèi)容和模擬鼠標(biāo)點(diǎn)擊瀏覽器按鈕.

本文介紹Python調(diào)用Selenium實(shí)現(xiàn)模擬瀏覽器輸入和點(diǎn)擊的步驟和方法,并給出最易出現(xiàn)的BUG的解決辦法

Python學(xué)習(xí)交流群:1004391443,這里有資源共享,技術(shù)解答,還有小編從最基礎(chǔ)的Python資料到項(xiàng)目實(shí)戰(zhàn)的學(xué)習(xí)資料都有整理,希望能幫助你更了解python,學(xué)習(xí)python。

一、安裝Selenium

pip install Selenium

二、下載chromedriver.exe

需要下載與瀏覽器版本對(duì)應(yīng)的chromedriver.exe到代碼所在目錄下,

下載地址:

http://chromedriver.storage./index.html

(注意:運(yùn)行代碼時(shí)如果沒(méi)有下載與自己的瀏覽器版本匹配的 chromedriver.exe 放到代碼同級(jí)目錄下,

會(huì)報(bào)錯(cuò): selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH. Please see https://sites.google.com/a/chromium.org/chromedriver/home)

三、編寫(xiě)代碼實(shí)現(xiàn)模擬瀏覽器

本文以登錄淘寶網(wǎng)首頁(yè)為例,在搜索欄輸入搜索內(nèi)容,點(diǎn)擊“搜索”按鈕,(網(wǎng)站加載需要時(shí)間,受網(wǎng)速等影響),加載完成后會(huì)進(jìn)入授權(quán)登錄頁(yè)面

在提示掃碼登錄的界面,點(diǎn)擊“賬號(hào)密碼登錄”(換了頁(yè)面,還是可以繼續(xù)點(diǎn)擊和輸入內(nèi)容),具體代碼解釋見(jiàn)注釋

from selenium import webdriverimport time # 聲明瀏覽器(這里用chrome瀏覽器)browser = webdriver.Chrome()try: # get打開(kāi)指定的url,傳入要打開(kāi)的url,以淘寶網(wǎng)為例 browser.get('https://www.taobao.com/') # 通過(guò)find_element_by_name獲取到網(wǎng)頁(yè)標(biāo)簽,send_keys()輸入內(nèi)容,在搜索欄輸入python browser.find_element_by_name('q').send_keys('python') time.sleep(1) ''' 通過(guò)find_element_by_class_name獲取到網(wǎng)頁(yè)標(biāo)簽,click()點(diǎn)擊 注意class名中的空格是表示父子級(jí)的關(guān)系,如果有空格,則class_name只取最后一段,然后還要避免有同名的class,不要取錯(cuò)了 為了避免取錯(cuò)標(biāo)簽,優(yōu)先根據(jù)id或name等其他方式取 如:淘寶網(wǎng)的搜索按鈕class name為btn-search tb-bg,用btn-search tb-bg取時(shí)報(bào)錯(cuò),用tb-bg取則成功 ''' # browser.find_element_by_class_name('btn-search tb-bg').click() # 報(bào)錯(cuò) browser.find_element_by_class_name('tb-bg').click() # 成功 time.sleep(5) # 點(diǎn)擊'密碼登錄'按鈕 # browser.find_element_by_class_name('forget-pwd J_Quick2Static').click() # 報(bào)錯(cuò) browser.find_element_by_class_name('J_Quick2Static').click() # 正常 time.sleep(10) browser.close()except Exception as e: print('模擬登錄失?。簕}'.format(e)) browser.close()

上面的代碼聲明一個(gè)Chrome瀏覽器,通過(guò)browser對(duì)象獲取瀏覽器標(biāo)簽進(jìn)行輸入內(nèi)容和點(diǎn)擊,sleep()模擬瀏覽器加載的過(guò)程

按照上面的步驟配置webdriver和編寫(xiě)代碼即可以實(shí)現(xiàn)Selenium的demo.

BUG描述:

使用webdriver聲明瀏覽器后,打開(kāi)網(wǎng)頁(yè),然后使用find_element_by_class_name('class_name')選擇html標(biāo)簽時(shí),報(bào)錯(cuò):

Message: invalid selector: Compound class names not permitted

消息:無(wú)效選擇器:不允許使用復(fù)合類(lèi)名

原因分析:

我們通過(guò)F12從瀏覽器獲取到的html元素的class name中間有空格,所以提示我們:類(lèi)名不合法,不允許的類(lèi)名

解決方法:

方法1.html元素的class name中間的空格是表示父級(jí)和子級(jí)的關(guān)系,我們調(diào)用以上方法時(shí),使用類(lèi)名的最后一段就可以了

如選擇html標(biāo)簽:

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多