微軟出品自動化神器【Playwright+Java】系列(六) 之 字元輸入、單元素鍵盤事件操作、上傳檔案、聚焦、拖拽、懸浮操作

久曲健發表於2022-12-17

前言:

今天一早起床,就一直太陽穴疼,吃了四片去痛片已經無效,真的是疼的直噁心。

如果說學習或者寫文章,能夠緩解頭疼的話,那我想說,我還能堅持一會.....

很久沒更新這系列的文章了,那麼我們將Playwright+Java系列延續,帶上自己的那份快樂開始吧!

想系統學習請參考:Playwright+Java入門

Action系列API

《微軟出品自動化神器【Playwright+Java】系列(五) 之 常見點選事件操作》,這篇文章已經提及了一些,今天這部書屬於下集,下面將針對這部分API進行距離講解。

1、模擬鍵盤輸入字元操作

  • 語法: Locator.type(value)
  • 使用場景: 模擬鍵盤輸入字元

注意:
大多數時候,Page.fill()可以滿足要求。如不能輸入時,可以考慮鍵入字元操作。

示例程式碼如下:

@Test
public void testInput() {
    page.locator("#user").type("公眾號:軟體測試君");
}

2、單元素鍵盤事件操作

  • 語法:Locator.press(鍵盤事件)
  • 使用場景:定位元素併產生單個鍵盤事件

它接受在鍵盤事件的keyboardEvent.key屬性中發出的邏輯鍵名稱:

Backquote, Minus, Equal, Backslash, Backspace, Tab, Delete, Escape,
ArrowDown, End, Enter, Home, Insert, PageDown, PageUp, ArrowRight,
ArrowUp, F1 - F12, Digit0 - Digit9, KeyA - KeyZ, etc.

注意: 需要指定大寫字母A以Shift-A生成大寫字元。Shift-a產生一個小寫的,就好像你用CapsLock切換一樣

示例程式碼如下:

@Test
public void testkeyboardEvent() {
    page.locator("#user").type("公眾號:軟體測試君");
    //模擬Ctrl+A 全選操作
    page.locator("#user").press("Control+A");
    //模擬回車操作 == > 跳轉到百度頁面
    page.locator(".baidu").press("Enter");
    pause(3);
}

3、上傳檔案

  • 語法:Locator.setInputFiles()
  • 使用場景:上傳一個或多個檔案

示例程式碼如下:

@Test
public void testUpload() {
    //上傳一個檔案
    page.locator("#load").setInputFiles(Paths.get("demo.md"));
    // 上傳多個檔案
    page.locator("#load").setInputFiles(new Path[]{Paths.get("pom.xml"), Paths.get("demo.md")});
}

4、聚焦元素

  • 語法:Locator.focus()
  • 使用場景:聚焦效果顯示,真的很好看,哈哈

示例程式碼如下:

@Test
public void testFocus(){
    page.locator("#user").focus();
    pause(3);
}

效果如下:

image.png

5、拖拽操作

  • 語法:Locator.dragTo()
  • 使用場景:常見元素拖動操作

示例程式碼如下:

@Test
public void testDrag(){
    page.navigate("http://localhost:8080/drag.html");
    page.locator("#A").dragTo(page.locator(".container ul:nth-of-type(2)"));
    pause(3);
}

6、懸浮操作

  • 語法:Locator.hover()、Mouse.down()、Mouse.move()和Mouse.up()
  • 使用場景:常見元素懸浮操作

示例程式碼如下:

@Test
public void testHover() {
    page.locator("#action").hover();
    pause(3);
}

寫在最後

今天這篇文章更新難度係數很大,因為官方文件都是英文的,我是真的看不懂,只能藉助谷歌瀏覽器的右鍵的翻譯成中文來理解學習。

恰巧今天谷歌瀏覽器就像跟我抗議一樣,我右鍵後,提示我無法翻譯此網頁,結果我搞這個報錯整了近一個多小時,感興趣的同學可以自己去參考解決方案

把這個報錯搞好了,結果定位外掛又不能用了,真的好氣,經過一番折騰,定位外掛也搞好了,終於可以接著學習和更文了。

不知道,在讀文章的你有沒有遇到過,要做什麼事,總會有些小插曲,讓你感到既開心又無奈呢?

感恩每次遇到的困難,都讓我賺到了一筆經驗?!

我是六哥,請繼續關注我,如果覺得文章對您有幫助,還請點贊、收藏並轉發

相關文章