Python中Playwright的常用操作方法分享
本文詳細介紹了Playwright的常用操作方法,包括獲取頁面元素、點擊按鈕和鏈接、獲取標簽頁、獲取元素屬性、設(shè)置超時、單擊元素、模擬鼠標點擊和拖放操作等。這些方法可以幫助開發(fā)者更加高效地進行自動化測試和爬蟲開發(fā)。
1. Playwright獲得所有的Cookies
可以使用 BrowserContext.cookies() 方法來獲取特定的Cookie。如果沒有指定參數(shù),將返回所有Cookie。
# Get all cookies all_cookies = browser_context.cookies()
2. Playwright獲得所有的鏈接
可以使用page.locator()方法并指定a表達式來獲取頁面所有的鏈接。
page_elements = page.locator('a')
print(f"{page_elements.count()} link/links are found.")3. Playwright獲得包含特定字符串/文本的所有鏈接
使用page.locator()方法并指定 a:has-text() 表達式來獲取頁面的所有鏈接。
page_elements = page.locator('a:has-text("田辛老師")')
print(f"{page_elements.count()} link/links are found.")4. Playwright點擊按鈕
點擊按鈕的基本思路就是使用click()方法。
4.1 先定位元素
element = page.locator('input[name="goto_tdouya_homepage"]')
element.click()4.2 直接點擊
element = page.click('input[name="goto_tdouya_homepage"]')5. Playwright點擊鏈接
和按鈕一樣, 主體思路還是使用click()方法。 注意, 和按鈕不同的是,link元素的定位需要選擇第一個元素。
5.1. 先定位元素
element = page.locator('a:has-text("goto_tdouya_homepage")').first
element.click()5.2 直接點擊
page.click('a:has-text("goto_tdouya_homepage") >> nth=0'6.Playwright獲得所有的標簽頁
現(xiàn)在的瀏覽器都是支持多個標簽頁的。 那么我們可以采用BrowserContext.pages屬性來獲取所有的打開頁面。
## 獲得所有被打開的pages/tabs
opened_pages = context.pages
# 枚舉所有的打開頁面的url
for p in opened_pages:
print(p.url)7.Playwright獲取元素的所有屬性
可以使用locator.evaluate()方法執(zhí)行Javascript表達式, 獲取元素的所有屬性名。 并枚舉他們,并使用get_attribute()方法獲得每個屬性的值。
# 定位元素
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.點擊時設(shè)置超時
雖然Playwright的超時要比Selenium友好的多。 但是,必要的時候也可以設(shè)置。 尤其是一些嚴苛環(huán)境下。
# timeout的單位是毫秒, 默認值是30秒,也就是30000
page.click("#tdouyaButton", timeout=60000) 9.如果元素存在則單擊元素
在本小結(jié)中, 我們探索的情形是元素有可能存在有可能不存在。 整體思路是綜合利用上面提到過的page.locator()方法。檢查元素數(shù)量。 如果大于0, 則進行后續(xù)點擊操作。
# 獲得元素
elements = page.locator('a:has-text("田辛老師")')
# 獲得元素數(shù)量
link_number = elements.count()
# 元素數(shù)量大于0, 則進行點擊操作
if link_number > 0:
elements.first.click()
10.模擬鼠標點擊
使用page.mouse.click()方法來點擊頁面中特定位置的元素。
page.mouse.click(1700, 1450)
11.拖放操作
使用page.mouse.move實現(xiàn)拖動, 使用page.mouse.up()、page.mouse.down()方法模擬鼠標左鍵長按和放開的操作。
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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python報錯TypeError: ‘dict‘ object is not&
在Python開發(fā)的旅程中,報錯信息就像是一個個路障,阻礙著我們前進的步伐,而“TypeError: ‘dict’ object is not iterable”這個報錯,常常讓開發(fā)者們陷入困惑,那么,這個報錯究竟是怎么產(chǎn)生的呢?又該如何有效地解決它呢?讓我們一起深入探討,找到解決問題的方法2024-10-10
numpy展平數(shù)組ndarray.flatten()詳解
這篇文章主要介紹了numpy展平數(shù)組ndarray.flatten()詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-06-06
python調(diào)用其他文件函數(shù)或類的示例
今天小編就為大家分享一篇python調(diào)用其他文件函數(shù)或類的示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07

