国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Python中selenium的玩法,小朋友看了都說學(xué)會了(1),字節(jié)跳動測試開發(fā)工程師面試題

這篇具有很好參考價(jià)值的文章主要介紹了Python中selenium的玩法,小朋友看了都說學(xué)會了(1),字節(jié)跳動測試開發(fā)工程師面試題。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

2. 根據(jù)標(biāo)簽頁句柄列表索引下標(biāo)進(jìn)行切換

driver.switch_to.window(current_windows[0])

  • 參考代碼示例:

import time

from selenium import webdriver

?

driver = webdriver.Chrome()

driver.get(“https://www.baidu.com/”)

?

time.sleep(1)

driver.find_element_by_id(‘kw’).send_keys(‘python’)

time.sleep(1)

driver.find_element_by_id(‘su’).click()

time.sleep(1)

?

通過執(zhí)行js來新開一個(gè)標(biāo)簽頁

js = ‘window.open(“https://www.sogou.com”);’

driver.execute_script(js)

time.sleep(1)

?

1. 獲取當(dāng)前所有的窗口

windows = driver.window_handles

?

time.sleep(2)

2. 根據(jù)窗口索引進(jìn)行切換

driver.switch_to.window(windows[0])

time.sleep(2)

driver.switch_to.window(windows[1])

?

time.sleep(6)

driver.quit()


2. switch_to切換frame標(biāo)簽

iframe是html中常用的一種技術(shù),即一個(gè)頁面中嵌套了另一個(gè)網(wǎng)頁,selenium默認(rèn)是訪問不了frame中的內(nèi)容的,對應(yīng)的解決思路是driver.switch_to.frame(frame_element)。接下來我們通過qq郵箱模擬登陸來學(xué)習(xí)這個(gè)知識點(diǎn)

  • 參考代碼:

import time

from selenium import webdriver

?

driver = webdriver.Chrome()

?

url = ‘https://mail.qq.com/cgi-bin/loginpage’

driver.get(url)

time.sleep(2)

?

login_frame = driver.find_element_by_id(‘login_frame’) # 根據(jù)id定位 frame元素

driver.switch_to.frame(login_frame) # 轉(zhuǎn)向到該frame中

?

driver.find_element_by_xpath(‘//*[@id=“u”]’).send_keys(‘1596930226@qq.com’)

time.sleep(2)

?

driver.find_element_by_xpath(‘//*[@id=“p”]’).send_keys(‘hahamimashicuode’)

time.sleep(2)

?

driver.find_element_by_xpath(‘//*[@id=“l(fā)ogin_button”]’).click()

time.sleep(2)

?

“”“操作frame外邊的元素需要切換出去”“”

windows = driver.window_handles

driver.switch_to.window(windows[0])

?

content = driver.find_element_by_class_name(‘login_pictures_title’).text

print(content)

?

driver.quit()

  • 總結(jié):

  • 切換到定位的frame標(biāo)簽嵌套的頁面中

  • driver.switch_to.frame(通過find_element_by函數(shù)定位的frame、iframe標(biāo)簽對象)

  • 利用切換標(biāo)簽頁的方式切出frame標(biāo)簽

windows = driver.window_handles

driver.switch_to.window(windows[0])


3. selenium對cookie的處理

selenium能夠幫助我們處理頁面中的cookie,比如獲取、刪除,接下來我們就學(xué)習(xí)這部分知識

獲取cookie

driver.get_cookies()返回列表,其中包含的是完整的cookie信息!不光有name、value,還有domain等cookie其他維度的信息。所以如果想要把獲取的cookie信息和requests模塊配合使用的話,需要轉(zhuǎn)換為name、value作為鍵值對的cookie字典

# 獲取當(dāng)前標(biāo)簽頁的全部cookie信息

print(driver.get_cookies())

把cookie轉(zhuǎn)化為字典

cookies_dict = {cookie[‘name’]: cookie[‘value’] for cookie in driver.get_cookies()}

刪除cookie

#刪除一條cookie

driver.delete_cookie(“CookieName”)

?

刪除所有的cookie

driver.delete_all_cookies()


4. selenium控制瀏覽器執(zhí)行js代碼

selenium可以讓瀏覽器執(zhí)行我們規(guī)定的js代碼,運(yùn)行下列代碼查看運(yùn)行效果

import time

from selenium import webdriver

?

driver = webdriver.Chrome()

driver.get(“http://www.itcast.cn/”)

time.sleep(1)

?

js = ‘window.scrollTo(0,document.body.scrollHeight)’ # js語句

driver.execute_script(js) # 執(zhí)行js的方法

?

time.sleep(5)

driver.quit()

  • 執(zhí)行js的方法:driver.execute_script(js)

5. 頁面等待

頁面在加載的過程中需要花費(fèi)時(shí)間等待網(wǎng)站服務(wù)器的響應(yīng),在這個(gè)過程中標(biāo)簽元素有可能還沒有加載出來,是不可見的,如何處理這種情況呢?

  1. 頁面等待分類

  2. 強(qiáng)制等待介紹

  3. 顯式等待介紹

  4. 隱式等待介紹

  5. 手動實(shí)現(xiàn)頁面等待

頁面等待的分類

首先我們就來了解以下selenium頁面等待的分類

  1. 強(qiáng)制等待

  2. 隱式等待

  3. 顯式等待

強(qiáng)制等待(了解)

  • 其實(shí)就是time.sleep()

  • 缺點(diǎn)時(shí)不智能,設(shè)置的時(shí)間太短,元素還沒有加載出來;設(shè)置的時(shí)間太長,則會浪費(fèi)時(shí)間

隱式等待

  • 隱式等待針對的是元素定位,隱式等待設(shè)置了一個(gè)時(shí)間,在一段時(shí)間內(nèi)判斷元素是否定位成功,如果完成了,就進(jìn)行下一步

  • 在設(shè)置的時(shí)間內(nèi)沒有定位成功,則會報(bào)超時(shí)加載

  • 示例代碼

from selenium import webdriver

?

driver = webdriver.Chrome()

?

driver.implicitly_wait(10) # 隱式等待,最長等20秒

?

driver.get(‘https://www.baidu.com’)

?

driver.find_element_by_xpath()

?

顯式等待(了解)

  • 每經(jīng)過多少秒就查看一次等待條件是否達(dá)成,如果達(dá)成就停止等待,繼續(xù)執(zhí)行后續(xù)代碼

  • 如果沒有達(dá)成就繼續(xù)等待直到超過規(guī)定的時(shí)間后,報(bào)超時(shí)異常

  • 示例代碼

from selenium import webdriver

from selenium.webdriver.support.wait import WebDriverWait

from selenium.webdriver.support import expected_conditions as EC

from selenium.webdriver.common.by import By

driver = webdriver.Chrome()

driver.get(‘https://www.baidu.com’)

顯式等待

WebDriverWait(driver, 20, 0.5).until(

EC.presence_of_element_located((By.LINK_TEXT, ‘好123’)))

參數(shù)20表示最長等待20秒

參數(shù)0.5表示0.5秒檢查一次規(guī)定的標(biāo)簽是否存在

EC.presence_of_element_located((By.LINK_TEXT, ‘好123’)) 表示通過鏈接文本內(nèi)容定位標(biāo)簽

每0.5秒一次檢查,通過鏈接文本內(nèi)容定位標(biāo)簽是否存在,如果存在就向下繼續(xù)執(zhí)行;如果不存在,直到20秒上限就拋出異常

print(driver.find_element_by_link_text(‘好123’).get_attribute(‘href’))

driver.quit()

手動實(shí)現(xiàn)頁面等待

在了解了隱式等待和顯式等待以及強(qiáng)制等待后,我們發(fā)現(xiàn)并沒有一種通用的方法來解決頁面等待的問題,比如“頁面需要滑動才能觸發(fā)ajax異步加載”的場景,那么接下來我們就以淘寶網(wǎng)首頁為例,手動實(shí)現(xiàn)頁面等待

  • 原理:

  • 利用強(qiáng)制等待和顯式等待的思路來手動實(shí)現(xiàn)

  • 不停的判斷或有次數(shù)限制的判斷某一個(gè)標(biāo)簽對象是否加載完畢(是否存在)

  • 實(shí)現(xiàn)代碼如下:

import time

from selenium import webdriver

driver = webdriver.Chrome(‘/home/worker/Desktop/driver/chromedriver’)

driver.get(‘https://www.taobao.com/’)

time.sleep(1)

i = 0

while True:

for i in range(10):

i += 1

try:

time.sleep(3)

element = driver.find_element_by_xpath(‘//div[@class=“shop-inner”]/h3[1]/a’)

print(element.get_attribute(‘href’))

break

except:

js = ‘window.scrollTo(0, {})’.format(i*500) # js語句

driver.execute_script(js) # 執(zhí)行js的方法

driver.quit()


6. selenium開啟無界面模式

絕大多數(shù)服務(wù)器是沒有界面的,selenium控制谷歌瀏覽器也是存在無界面模式的,這一小節(jié)我們就來學(xué)習(xí)如何開啟無界面模式(又稱之為無頭模式)

  • 開啟無界面模式的方法

  • 實(shí)例化配置對象

  • options = webdriver.ChromeOptions()

  • 配置對象添加開啟無界面模式的命令

  • options.add_argument("--headless")

  • 配置對象添加禁用gpu的命令

  • options.add_argument("--disable-gpu")

  • 實(shí)例化帶有配置對象的driver對象

  • driver = webdriver.Chrome(chrome_options=options)

  • 注意:macos中chrome瀏覽器59+版本,Linux中57+版本才能使用無界面模式!

  • 參考代碼如下:

from selenium import webdriver

options = webdriver.ChromeOptions() # 創(chuàng)建一個(gè)配置對象

options.add_argument(“–headless”) # 開啟無界面模式

options.add_argument(“–disable-gpu”) # 禁用gpu

options.set_headles() # 無界面模式的另外一種開啟方式

driver = webdriver.Chrome(chrome_options=options) # 實(shí)例化帶有配置的driver對象

driver.get(‘http://www.itcast.cn’)

print(driver.title)

driver.quit()

7. selenium使用代理ip

selenium控制瀏覽器也是可以使用代理ip的!

  • 使用代理ip的方法

  • 實(shí)例化配置對象

  • options = webdriver.ChromeOptions()

  • 配置對象添加使用代理ip的命令

  • options.add_argument('--proxy-server=http://202.20.16.82:9527')

  • 實(shí)例化帶有配置對象的driver對象

  • driver = webdriver.Chrome('./chromedriver', chrome_options=options)

  • 參考代碼如下:

from selenium import webdriver

options = webdriver.ChromeOptions() # 創(chuàng)建一個(gè)配置對象

自我介紹一下,小編13年上海交大畢業(yè),曾經(jīng)在小公司待過,也去過華為、OPPO等大廠,18年進(jìn)入阿里一直到現(xiàn)在。

深知大多數(shù)Python工程師,想要提升技能,往往是自己摸索成長或者是報(bào)班學(xué)習(xí),但對于培訓(xùn)機(jī)構(gòu)動則幾千的學(xué)費(fèi),著實(shí)壓力不小。自己不成體系的自學(xué)效果低效又漫長,而且極易碰到天花板技術(shù)停滯不前!

因此收集整理了一份《2024年P(guān)ython開發(fā)全套學(xué)習(xí)資料》,初衷也很簡單,就是希望能夠幫助到想自學(xué)提升又不知道該從何學(xué)起的朋友,同時(shí)減輕大家的負(fù)擔(dān)。
Python中selenium的玩法,小朋友看了都說學(xué)會了(1),字節(jié)跳動測試開發(fā)工程師面試題,2024年程序員學(xué)習(xí),python,selenium,開發(fā)語言
Python中selenium的玩法,小朋友看了都說學(xué)會了(1),字節(jié)跳動測試開發(fā)工程師面試題,2024年程序員學(xué)習(xí),python,selenium,開發(fā)語言
Python中selenium的玩法,小朋友看了都說學(xué)會了(1),字節(jié)跳動測試開發(fā)工程師面試題,2024年程序員學(xué)習(xí),python,selenium,開發(fā)語言
Python中selenium的玩法,小朋友看了都說學(xué)會了(1),字節(jié)跳動測試開發(fā)工程師面試題,2024年程序員學(xué)習(xí),python,selenium,開發(fā)語言
Python中selenium的玩法,小朋友看了都說學(xué)會了(1),字節(jié)跳動測試開發(fā)工程師面試題,2024年程序員學(xué)習(xí),python,selenium,開發(fā)語言
Python中selenium的玩法,小朋友看了都說學(xué)會了(1),字節(jié)跳動測試開發(fā)工程師面試題,2024年程序員學(xué)習(xí),python,selenium,開發(fā)語言

既有適合小白學(xué)習(xí)的零基礎(chǔ)資料,也有適合3年以上經(jīng)驗(yàn)的小伙伴深入學(xué)習(xí)提升的進(jìn)階課程,基本涵蓋了95%以上Python開發(fā)知識點(diǎn),真正體系化!

由于文件比較大,這里只是將部分目錄大綱截圖出來,每個(gè)節(jié)點(diǎn)里面都包含大廠面經(jīng)、學(xué)習(xí)筆記、源碼講義、實(shí)戰(zhàn)項(xiàng)目、講解視頻,并且后續(xù)會持續(xù)更新

如果你覺得這些內(nèi)容對你有幫助,可以添加V獲?。簐ip1024c (備注Python)
Python中selenium的玩法,小朋友看了都說學(xué)會了(1),字節(jié)跳動測試開發(fā)工程師面試題,2024年程序員學(xué)習(xí),python,selenium,開發(fā)語言

如果你也是看準(zhǔn)了Python,想自學(xué)Python,在這里為大家準(zhǔn)備了豐厚的免費(fèi)學(xué)習(xí)大禮包,帶大家一起學(xué)習(xí),給大家剖析Python兼職、就業(yè)行情前景的這些事兒。

一、Python所有方向的學(xué)習(xí)路線

Python所有方向路線就是把Python常用的技術(shù)點(diǎn)做整理,形成各個(gè)領(lǐng)域的知識點(diǎn)匯總,它的用處就在于,你可以按照上面的知識點(diǎn)去找對應(yīng)的學(xué)習(xí)資源,保證自己學(xué)得較為全面。

Python中selenium的玩法,小朋友看了都說學(xué)會了(1),字節(jié)跳動測試開發(fā)工程師面試題,2024年程序員學(xué)習(xí),python,selenium,開發(fā)語言

二、學(xué)習(xí)軟件

工欲善其必先利其器。學(xué)習(xí)Python常用的開發(fā)軟件都在這里了,給大家節(jié)省了很多時(shí)間。

Python中selenium的玩法,小朋友看了都說學(xué)會了(1),字節(jié)跳動測試開發(fā)工程師面試題,2024年程序員學(xué)習(xí),python,selenium,開發(fā)語言

三、全套PDF電子書

書籍的好處就在于權(quán)威和體系健全,剛開始學(xué)習(xí)的時(shí)候你可以只看視頻或者聽某個(gè)人講課,但等你學(xué)完之后,你覺得你掌握了,這時(shí)候建議還是得去看一下書籍,看權(quán)威技術(shù)書籍也是每個(gè)程序員必經(jīng)之路。

Python中selenium的玩法,小朋友看了都說學(xué)會了(1),字節(jié)跳動測試開發(fā)工程師面試題,2024年程序員學(xué)習(xí),python,selenium,開發(fā)語言

四、入門學(xué)習(xí)視頻

我們在看視頻學(xué)習(xí)的時(shí)候,不能光動眼動腦不動手,比較科學(xué)的學(xué)習(xí)方法是在理解之后運(yùn)用它們,這時(shí)候練手項(xiàng)目就很適合了。

Python中selenium的玩法,小朋友看了都說學(xué)會了(1),字節(jié)跳動測試開發(fā)工程師面試題,2024年程序員學(xué)習(xí),python,selenium,開發(fā)語言

Python中selenium的玩法,小朋友看了都說學(xué)會了(1),字節(jié)跳動測試開發(fā)工程師面試題,2024年程序員學(xué)習(xí),python,selenium,開發(fā)語言

四、實(shí)戰(zhàn)案例

光學(xué)理論是沒用的,要學(xué)會跟著一起敲,要動手實(shí)操,才能將自己的所學(xué)運(yùn)用到實(shí)際當(dāng)中去,這時(shí)候可以搞點(diǎn)實(shí)戰(zhàn)案例來學(xué)習(xí)。

Python中selenium的玩法,小朋友看了都說學(xué)會了(1),字節(jié)跳動測試開發(fā)工程師面試題,2024年程序員學(xué)習(xí),python,selenium,開發(fā)語言

五、面試資料

我們學(xué)習(xí)Python必然是為了找到高薪的工作,下面這些面試題是來自阿里、騰訊、字節(jié)等一線互聯(lián)網(wǎng)大廠最新的面試資料,并且有阿里大佬給出了權(quán)威的解答,刷完這一套面試資料相信大家都能找到滿意的工作。

Python中selenium的玩法,小朋友看了都說學(xué)會了(1),字節(jié)跳動測試開發(fā)工程師面試題,2024年程序員學(xué)習(xí),python,selenium,開發(fā)語言

成為一個(gè)Python程序員專家或許需要花費(fèi)數(shù)年時(shí)間,但是打下堅(jiān)實(shí)的基礎(chǔ)只要幾周就可以,如果你按照我提供的學(xué)習(xí)路線以及資料有意識地去實(shí)踐,你就有很大可能成功!
最后祝你好運(yùn)?。。?mark hidden color="red">文章來源:http://www.zghlxwxcb.cn/news/detail-854321.html

一個(gè)人可以走的很快,但一群人才能走的更遠(yuǎn)。不論你是正從事IT行業(yè)的老鳥或是對IT行業(yè)感興趣的新人,都?xì)g迎掃碼加入我們的的圈子(技術(shù)交流、學(xué)習(xí)資源、職場吐槽、大廠內(nèi)推、面試輔導(dǎo)),讓我們一起學(xué)習(xí)成長!
Python中selenium的玩法,小朋友看了都說學(xué)會了(1),字節(jié)跳動測試開發(fā)工程師面試題,2024年程序員學(xué)習(xí),python,selenium,開發(fā)語言

csdnimg.cn/img_convert/ec690501ea1dbe2cb209cbf4013c2477.png)

Python中selenium的玩法,小朋友看了都說學(xué)會了(1),字節(jié)跳動測試開發(fā)工程師面試題,2024年程序員學(xué)習(xí),python,selenium,開發(fā)語言

四、實(shí)戰(zhàn)案例

光學(xué)理論是沒用的,要學(xué)會跟著一起敲,要動手實(shí)操,才能將自己的所學(xué)運(yùn)用到實(shí)際當(dāng)中去,這時(shí)候可以搞點(diǎn)實(shí)戰(zhàn)案例來學(xué)習(xí)。

Python中selenium的玩法,小朋友看了都說學(xué)會了(1),字節(jié)跳動測試開發(fā)工程師面試題,2024年程序員學(xué)習(xí),python,selenium,開發(fā)語言

五、面試資料

我們學(xué)習(xí)Python必然是為了找到高薪的工作,下面這些面試題是來自阿里、騰訊、字節(jié)等一線互聯(lián)網(wǎng)大廠最新的面試資料,并且有阿里大佬給出了權(quán)威的解答,刷完這一套面試資料相信大家都能找到滿意的工作。

Python中selenium的玩法,小朋友看了都說學(xué)會了(1),字節(jié)跳動測試開發(fā)工程師面試題,2024年程序員學(xué)習(xí),python,selenium,開發(fā)語言

成為一個(gè)Python程序員專家或許需要花費(fèi)數(shù)年時(shí)間,但是打下堅(jiān)實(shí)的基礎(chǔ)只要幾周就可以,如果你按照我提供的學(xué)習(xí)路線以及資料有意識地去實(shí)踐,你就有很大可能成功!
最后祝你好運(yùn)?。?!

一個(gè)人可以走的很快,但一群人才能走的更遠(yuǎn)。不論你是正從事IT行業(yè)的老鳥或是對IT行業(yè)感興趣的新人,都?xì)g迎掃碼加入我們的的圈子(技術(shù)交流、學(xué)習(xí)資源、職場吐槽、大廠內(nèi)推、面試輔導(dǎo)),讓我們一起學(xué)習(xí)成長!
[外鏈圖片轉(zhuǎn)存中…(img-aYtM9aHQ-1712700674319)]文章來源地址http://www.zghlxwxcb.cn/news/detail-854321.html

到了這里,關(guān)于Python中selenium的玩法,小朋友看了都說學(xué)會了(1),字節(jié)跳動測試開發(fā)工程師面試題的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包