天天看點

微軟自動化神器【Playwright】(五)之 常見點選事件操作

作者:軟體測試君

寫在前面

明天就是周五了,這周有那麼一兩天心情特别不好,真的是做什麼都沒興緻,是以導緻整個人都很喪,什麼都不想做。

本打算周一就更新這篇文章的,但由于公司一直加班,每天到家很晚,都是擠時間去學,了解後再輸出到部落格寫出來,是以導緻進度就滞後了,真的不是我偷懶,還請一直關注我的小夥伴能夠了解。

常見點選事件操作

這部分主要示範的常見點選操作,例如:文本輸入、複選框、單選按鈕、選擇選項、滑鼠點選事件等等。

1、輸入操作

「文法:」 Locator.fill(value)

「使用場景:」 文本框、日期/時間、月曆控件等輸入框

示例代碼如下:

/**
     * 輸入操作:
     * 文法:Locator.fill(value)
     * 使用場景:文本框、日期/時間、月曆控件等輸入框
     */
    @Test
    public void testInput() {
        page.locator("#user").fill("公衆号:軟體測試君");
        String value = page.locator("#user").getAttribute("value");
        //輸出 ==> 公衆号:軟體測試君
        System.out.println(value);
    }
           

2、點選操作

「文法:」 Locator.click()

「适用場景:」 單選框、複選框、按鈕控件、常見可點選控件等等!

示例代碼如下:

/**
     * 點選操作
     * 文法:Locator.click()
     * 适用場景:單選框、複選框、按鈕控件、常見可點選控件等等!
     */
    @Test
    public void testClick() {
        //點選超連結
        page.locator(".baidu").click();
        page.goBack();
        //點選單選框(RadioBox)
        page.locator(".Volvo").click();
        //點選複選框(checkbox)
        page.locator("#checkbox [type='checkbox']:nth-child(7)").click();
    }
           

3、單選框及複選框操作

「文法:」 Locator.setChecked(checked)

「适用場景:」 單選框、複選框

示例代碼如下:

/**
     * 單選框及複選框操作
     * 文法:Locator.setChecked(checked)
     * 适用場景:單選框、複選框
     */
    @Test
    public void testChecked() {
        //單選款 (選中,已選中狀态下無效)
        page.locator(".Volvo").setChecked(true);
        page.locator(".Volvo").check();
        System.out.println(page.locator(".Volvo").isChecked());
        //複選框(選中,已選中狀态下無效)
        page.locator("#checkbox [type='checkbox']:nth-child(7)").check();
        page.locator("#checkbox [type='checkbox']:nth-child(7)").setChecked(true);
        System.out.println(page.locator("#checkbox [type='checkbox']:nth-child(7)").isChecked());
    }
           

4、下拉控件操作

「文法:」 Locator.selectOption(values[, options])

「适用場景:」 下拉框操作

示例代碼如下:

/**
     * 下拉控件操作
     * 文法:Locator.selectOption(values[, options])
     * 适用場景:下拉框操作
     */
    @Test
    public void testSelectOption() {
        //通過value值選擇
        page.locator("[name='select']").selectOption("opel");
        //通過可見文本選擇
        page.locator("[name='select']").selectOption(new SelectOption().setLabel("Audi"));
        // 多選無效,隻能選中第一個(saab)
        //page.locator("[name='select']").selectOption(new String[] {"saab", "opel"});
    }
           

5、滑鼠事件

「文法:」 詳見案例

「适用場景:」常見滑鼠點選事件

「案例如圖:」

微軟自動化神器【Playwright】(五)之 常見點選事件操作

示例代碼如下:

/**
     * 滑鼠事件
     * 文法:詳見案例
     * 适用場景:
     */
    @Test
    public void testMouse() {
        page.navigate("http://localhost:8080/mouse.html");
        //正常單擊
        page.locator("#mouse2").click();
        pause(3);
        //輕按兩下
        page.locator("#mouse3").dblclick();
        pause(3);
        //右鍵單擊
        page.locator("#mouse5").click(new Locator.ClickOptions().setButton(MouseButton.RIGHT));
        pause(3);
        //按住Shift鍵并單擊
        page.locator("#mouse2").click(new Locator.ClickOptions().setModifiers(Arrays.asList(KeyboardModifier.SHIFT)));
        pause(3);
        //懸停在元素上
        page.locator("#mouse1").hover();
        pause(3);
        //單擊左上角
        page.locator("#mouse1").click(new Locator.ClickOptions().setPosition(0, 0));
        pause(3);
        //強制點選
        page.locator("#mouse2").click(new Locator.ClickOptions().setForce(true));
        pause(3);
        //排程點選事件來觸發點選
        page.locator("#mouse2").dispatchEvent("click");
    }
           

注意: 不知道是什麼原因, 在執行滑鼠點選案例時,程式從上到下操作後會發現彈窗會自己點選關掉,神奇的很!

寫到最後

對比學習看的話,Selenium操作點選後的彈窗需要alert來完成确認,而Playwright卻可以自動點選,可以說比Selenium智能嗎?有興趣的小夥伴可以自己嘗試。

繼續閱讀