最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python中Playwright的常用操作方法分享

 更新時(shí)間:2023年05月09日 08:55:37   作者:田辛 | 田豆芽  
本文詳細(xì)介紹了Playwright的常用操作方法,包括獲取頁(yè)面元素、點(diǎn)擊按鈕和鏈接等。這些方法可以幫助開(kāi)發(fā)者更加高效地進(jìn)行自動(dòng)化測(cè)試和爬蟲(chóng)開(kāi)發(fā),需要的可以參考一下

本文詳細(xì)介紹了Playwright的常用操作方法,包括獲取頁(yè)面元素、點(diǎn)擊按鈕和鏈接、獲取標(biāo)簽頁(yè)、獲取元素屬性、設(shè)置超時(shí)、單擊元素、模擬鼠標(biāo)點(diǎn)擊和拖放操作等。這些方法可以幫助開(kāi)發(fā)者更加高效地進(jìn)行自動(dòng)化測(cè)試和爬蟲(chóng)開(kāi)發(fā)。

1. Playwright獲得所有的Cookies

可以使用 BrowserContext.cookies() 方法來(lái)獲取特定的Cookie。如果沒(méi)有指定參數(shù),將返回所有Cookie。

# Get all cookies
all_cookies = browser_context.cookies()

2. Playwright獲得所有的鏈接

可以使用page.locator()方法并指定a表達(dá)式來(lái)獲取頁(yè)面所有的鏈接。

page_elements = page.locator('a')
print(f"{page_elements.count()} link/links are found.")

3. Playwright獲得包含特定字符串/文本的所有鏈接

使用page.locator()方法并指定 a:has-text() 表達(dá)式來(lái)獲取頁(yè)面的所有鏈接。

page_elements = page.locator('a:has-text("田辛老師")')
print(f"{page_elements.count()} link/links are found.")

4. Playwright點(diǎn)擊按鈕

點(diǎn)擊按鈕的基本思路就是使用click()方法。

4.1 先定位元素

element = page.locator('input[name="goto_tdouya_homepage"]')
element.click()

4.2 直接點(diǎn)擊

element = page.click('input[name="goto_tdouya_homepage"]')

5. Playwright點(diǎn)擊鏈接

和按鈕一樣, 主體思路還是使用click()方法。 注意, 和按鈕不同的是,link元素的定位需要選擇第一個(gè)元素。

5.1. 先定位元素

element = page.locator('a:has-text("goto_tdouya_homepage")').first
element.click()

5.2 直接點(diǎn)擊

page.click('a:has-text("goto_tdouya_homepage") >> nth=0'

6.Playwright獲得所有的標(biāo)簽頁(yè)

現(xiàn)在的瀏覽器都是支持多個(gè)標(biāo)簽頁(yè)的。 那么我們可以采用BrowserContext.pages屬性來(lái)獲取所有的打開(kāi)頁(yè)面。

## 獲得所有被打開(kāi)的pages/tabs 
opened_pages = context.pages
# 枚舉所有的打開(kāi)頁(yè)面的url
for p in opened_pages:
    print(p.url)

7.Playwright獲取元素的所有屬性

可以使用locator.evaluate()方法執(zhí)行Javascript表達(dá)式, 獲取元素的所有屬性名。 并枚舉他們,并使用get_attribute()方法獲得每個(gè)屬性的值。

# 定位元素
element = page.locator('img_tdouya').first
# 獲得所有的屬性
el_attrs = element.evaluate("el => el.getAttributeNames()")
# 枚舉所有的屬性名稱和值
for attr in el_attrs:
    print(attr, ":", element.get_attribute(attr))

8.點(diǎn)擊時(shí)設(shè)置超時(shí)

雖然Playwright的超時(shí)要比Selenium友好的多。 但是,必要的時(shí)候也可以設(shè)置。 尤其是一些嚴(yán)苛環(huán)境下。

# timeout的單位是毫秒, 默認(rèn)值是30秒,也就是30000
page.click("#tdouyaButton", timeout=60000)  

9.如果元素存在則單擊元素

在本小結(jié)中, 我們探索的情形是元素有可能存在有可能不存在。 整體思路是綜合利用上面提到過(guò)的page.locator()方法。檢查元素?cái)?shù)量。 如果大于0, 則進(jìn)行后續(xù)點(diǎn)擊操作。

# 獲得元素
elements = page.locator('a:has-text("田辛老師")')  

# 獲得元素?cái)?shù)量
link_number = elements.count() 

# 元素?cái)?shù)量大于0, 則進(jìn)行點(diǎn)擊操作
if link_number > 0:
    elements.first.click()

10.模擬鼠標(biāo)點(diǎn)擊

使用page.mouse.click()方法來(lái)點(diǎn)擊頁(yè)面中特定位置的元素。

page.mouse.click(1700, 1450)

11.拖放操作

使用page.mouse.move實(shí)現(xiàn)拖動(dòng), 使用page.mouse.up()、page.mouse.down()方法模擬鼠標(biāo)左鍵長(zhǎng)按和放開(kāi)的操作。

page.mouse.move(150, 150)
page.mouse.down()
page.mouse.move(300, 300)
page.mouse.up()

到此這篇關(guān)于Python中Playwright的常用操作方法分享的文章就介紹到這了,更多相關(guān)Python Playwright內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python報(bào)錯(cuò)TypeError: ‘dict‘ object is not iterable的解決方法

    Python報(bào)錯(cuò)TypeError: ‘dict‘ object is not&

    在Python開(kāi)發(fā)的旅程中,報(bào)錯(cuò)信息就像是一個(gè)個(gè)路障,阻礙著我們前進(jìn)的步伐,而“TypeError: ‘dict’ object is not iterable”這個(gè)報(bào)錯(cuò),常常讓開(kāi)發(fā)者們陷入困惑,那么,這個(gè)報(bào)錯(cuò)究竟是怎么產(chǎn)生的呢?又該如何有效地解決它呢?讓我們一起深入探討,找到解決問(wèn)題的方法
    2024-10-10
  • python 爬取吉首大學(xué)網(wǎng)站成績(jī)單

    python 爬取吉首大學(xué)網(wǎng)站成績(jī)單

    python簡(jiǎn)單爬蟲(chóng),爬取吉首大學(xué)成績(jī)單,學(xué)校的成績(jī)單居然不支持導(dǎo)出,太坑了,算個(gè)績(jī)點(diǎn)居然還要手打,我吐了.花2個(gè)多小時(shí)寫(xiě)了此python程序來(lái)生成可方便求和平均的Excel文件,幫助JSU學(xué)子脫離手算煩惱...
    2021-06-06
  • Python OpenCV快速入門(mén)教程

    Python OpenCV快速入門(mén)教程

    這篇文章主要介紹了Python OpenCV快速入門(mén)教程,幫助大家更好的利用opencv處理圖像,感興趣的朋友可以了解下
    2021-04-04
  • numpy展平數(shù)組ndarray.flatten()詳解

    numpy展平數(shù)組ndarray.flatten()詳解

    這篇文章主要介紹了numpy展平數(shù)組ndarray.flatten()詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • python調(diào)用其他文件函數(shù)或類的示例

    python調(diào)用其他文件函數(shù)或類的示例

    今天小編就為大家分享一篇python調(diào)用其他文件函數(shù)或類的示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-07-07
  • Python實(shí)現(xiàn)免費(fèi)音樂(lè)下載器

    Python實(shí)現(xiàn)免費(fèi)音樂(lè)下載器

    本文主要為大家介紹了通過(guò)Python實(shí)現(xiàn)的免費(fèi)音樂(lè)下載器,文中的示例代碼講解詳細(xì),對(duì)我們的學(xué)習(xí)或工作有一定的幫助,需要的小伙伴可以學(xué)習(xí)一下
    2021-12-12
  • python時(shí)間time模塊處理大全

    python時(shí)間time模塊處理大全

    這篇文章主要給大家介紹了關(guān)于python時(shí)間time模塊處理的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • python繪制已知點(diǎn)的坐標(biāo)的直線實(shí)例

    python繪制已知點(diǎn)的坐標(biāo)的直線實(shí)例

    今天小編就為大家分享一篇python繪制已知點(diǎn)的坐標(biāo)的直線實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-07-07
  • colab中修改python版本的全過(guò)程

    colab中修改python版本的全過(guò)程

    日 對(duì)于沒(méi)有服務(wù)器的研究生來(lái)說(shuō),Colab無(wú)疑是性價(jià)比最高的GPU選擇,下面這篇文章主要給大家介紹了關(guān)于如何利用colab修改python版本的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • Python處理字符串之isspace()方法的使用

    Python處理字符串之isspace()方法的使用

    這篇文章主要介紹了Python處理字符串之isspace()方法的使用,是Python入門(mén)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-05-05

最新評(píng)論

卢湾区| 富平县| 河间市| 和林格尔县| 濉溪县| 印江| 乌鲁木齐县| 磐安县| 日喀则市| 茌平县| 缙云县| 凤台县| 周至县| 阿鲁科尔沁旗| 晋城| 韶山市| 荥经县| 报价| 安国市| 新化县| 封开县| 登封市| 兴城市| 大洼县| 吴堡县| 洪江市| 体育| 楚雄市| 肇源县| 区。| 昆明市| 阿拉善左旗| 宝坻区| 兴化市| 渭源县| 平安县| 祁东县| 板桥市| 枣庄市| 紫阳县| 竹北市|