• 微软出品自动化神器【Playwright+Java】系列(五) 之 常见点击事件操作


    写在前面

    明天就是周五了,这周有那么一两天心情特别不好,真的是做什么都没兴致,所以导致整个人都很丧,什么都不想做。

    本打算周一就更新这篇文章的,但由于公司一直加班,每天到家很晚,都是挤时间去学,理解后再输出到博客写出来,所以导致进度就滞后了,真的不是我偷懒,还请一直关注我的小伙伴能够理解。

    常见点击事件操作

    这部分主要演示的常见点击操作,例如:文本输入、复选框、单选按钮、选择选项、鼠标点击事件等等。

    1、输入操作

    语法: Locator.fill(value)

    使用场景: 文本框、日期/时间、日历控件等输入框

    示例代码如下:

    java
      /**
         * 输入操作:
         * 语法: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()

    适用场景: 单选框、复选框、按钮控件、常见可点击控件等等!

    示例代码如下:

    java
     /**
         * 点击操作
         * 语法: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)

    适用场景: 单选框、复选框

    示例代码如下:

    java
      /**
         * 单选框及复选框操作
         * 语法: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])

    适用场景: 下拉框操作

    示例代码如下:

    java
      /**
         * 下拉控件操作
         * 语法: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、鼠标事件

    语法: 详见案例

    适用场景:常见鼠标点击事件

    案例如图:

    示例代码如下:

    java
    /**
         * 鼠标事件
         * 语法:详见案例
         * 适用场景:
         */
        @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智能吗?有兴趣的小伙伴可以自己尝试。


    __EOF__

  • 本文作者: 久曲健的测试窝
  • 本文链接: https://www.cnblogs.com/longronglang/p/16789794.html
  • 关于博主: 评论和私信会在第一时间回复。或者直接私信我。
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
  • 声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。
  • 相关阅读:
    web大作业 静态网页(地下城与勇士 10页 带视频)
    Jenkins配置在远程服务器上执行shell脚本(两种方式)
    你是如何使用React高阶组件的?
    给Elasticsearch-ik分词器添加额外的分词字典
    【前端面试题】【布局】【样式】
    Linux tee 笔记221108
    场景:有一个字符串,利用这个字符串生成二维码时,发现字符串越长,生成的二维码越密集,比较难识别
    DDC代码阅读笔记
    Thumbs.db文件取消自动生成及删除方法
    【Java】 DirectByteBuffer堆外内存回收
  • 原文地址:https://www.cnblogs.com/longronglang/p/16789794.html