开发者

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

目录
  • 1. Playwright获得所有的Cookies
  • 2. Playwright获得所有的链接
  • 3. Playwright获得包含特定字符串/文本的所有链接
  • 4. Playwright点击按钮
    • 4.1 先定位元素
    • 4.2 直接点击
  • 5. Playwright点击链接
    • 5.1. 先定位元素
    • 5.2 直接点击
  • 6.Playwright获得所有的标签页
    • 7.Playwright获取元素的所有属性
      • 8.点击时设置超时
        • 9.如果元素存在则单击元素
          • 10.模拟鼠标点击
            • 11.拖放操作

              本文详细介绍了Playwright的常用操作方法,包括获取页面元素、点击按钮和链接、获取标签页、获取元素属zRKow性、设置超时、单击元素、模拟鼠标点击和拖放操作等。这些方法可以帮助开发者更加高效地进行编程客栈自动化测试和爬虫开发。

              1. Playwright获得所有的Cookies

              可以使用 BrowserContext.cookies() 方法来获取特定的Cookie。如果没有指定参数,将返回所有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开发者_C开发.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获得所有的标签页

              现在的浏览器都是支持多个标签页的。 那么我们可以采用BrowserContext.pages属性来获取所有的打开页面。

              ## 获得所有被打开的pages/tabs 
              opened_pages = context.pages
              # 枚举所有的打开页面的url
              for p in opened_pages:
                  print(p.url)

              7.Playwright获取元素的所有属性

              可以使用locator.evaLuate()方法执行Javascript表达式, 获取元素的所有属性名。 并枚举他们,并使用get_attributejs()方法获得每个属性的值。

              # 定位元素
              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.点击时设置超时

              虽然Playwright的超时要比Selenium友好的多。 但是,必要的时候也可以设置。 尤其是一些严苛环境下。

              # timeout的单位是毫秒, 默认值是30秒,也就是30000
              page.click("#tdouyaButton", timeout=60000)  

              9.如果元素存在则单击元素

              在本小结中, 我们探索的情形是元素有可能存在有可能不存在。 整体思路是综合利用上面提到过的page.locator()方法。检查元素数量。 如果大于0, 则进行后续点击操作。

              # 获得元素
              elements = page.locator('a:has-text("田辛老师")')  
              
              # 获得元素数量
              link_number = elements.count() 
              
              # 元素数量大于0, 则进行点击操作
              if link_number > 0:
                  elements.first.click()
              

              10.模拟鼠标点击

              使用page.mouse.click()方法来点击页面中特定位置的元素。

              page.mouse.click(1700, 1450)

              11.拖放操作

              使用page.mouse.move实现拖动, 使用page.mouse.up()、page.mouse.down()方法模拟鼠标左键长按和放开的操作。

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

              到此这篇关于python中Playwright的常用操作方法分享的文章就介绍到这了,python更多相关Python Playwright内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

              0

              上一篇:

              下一篇:

              精彩评论

              暂无评论...
              验证码 换一张
              取 消

              最新开发

              开发排行榜