Playwright+Java 微软出品自动化神器Playwright系列(四)之浏览器操作

写在前面今天是国庆节的最后一天 , 明天又要上班了,真的是感觉好像才开始放假一样,还是因为失恋没缓过来吗?
我的国庆七天第1天,当了近半天的司机,陪家人去各大超市去购物 , 下午在家躺·····
第2-5天,重感冒,鼻涕不止,浑身酸痛乏力,两卷卫生纸下去,鼻子已经废了,真的是躺平了······
第6天,打嗝不止,干咳、嗓子发炎肿了、鼻子烧了、嗓子基本说不出话了······
综上 , 真的这个假期过的好累,算是大病一场吗?
该做点什么早上6点20醒了,刷了一集《请君》,觉得状态还不错,还是写点东西吧,也算找找状态吧 。

Playwright+Java 微软出品自动化神器Playwright系列(四)之浏览器操作

文章插图
不管经历过什么,孰对孰错,生活还是要继续的,和自己和解,要学习的还有很多,充实过好每一天即可 。
Playwright之浏览器操作基础参数这系列的文章还要继续下去的,那么接下来要进行浏览器部分的操作了 。
1、创建浏览器对象示例代码如下:
//默认为无头浏览器方式启动browser = playwright.chromium().launch();//参数设定方式启动browser = playwright.chromium().launch(new BrowserType.LaunchOptions().setHeadless(true).setSlowMo(5000));2、创建浏览器上下文context = browser.newContext();3、创建Page对象一般来说 , 一个page对应一个浏览器选项卡 , 这点和selenium有点像 , 也可以说是比selenium分的更细致?示例如下:
page = context.newPage();浏览操作1、浏览器最大化这里以chrome浏览器为例 , 示例代码如下:
 Playwright playwright = Playwright.create();        //看到某博主写的python版的加--start-maximized这个参数 , 本人尝试后发现无效(Mac系统)        //Browser browser = playwright.chromium().launch(new BrowserType.LaunchOptions()        //        .setArgs(Collections.singletonList("--start-maximized"))        //        .setHeadless(false));        Browser browser = playwright.chromium().launch(new BrowserType.LaunchOptions().setHeadless(false));        browser.newContext(new Browser.NewContextOptions()                .setIgnoreHTTPSErrors(true)                .setJavaScriptEnabled(true)                .setViewportSize(2880, 1800));        Page page = browser.newPage();        page.navigate("https://www.cnblogs.com/longronglang");        System.out.println(page.title());        browser.close();        playwright.close();2、多个浏览器启动就是个浏览器的封装 , 没啥技术含量,示例代码如下:
import com.microsoft.playwright.*;import org.testng.annotations.Test;/** * @author rongrong * @version 1.0 * @description 浏览器窗口操作 * @date 2022/10/7 2:21 PM */public class TestBrowser {    /**     * 创建浏览器上下文     *     * @param browser     * @return     */    public BrowserContext createContext(Browser browser) {        BrowserContext context = browser.newContext(new Browser.NewContextOptions()                .setIgnoreHTTPSErrors(true)                .setJavaScriptEnabled(true)                //此处可以理解为设定指定窗口启动                .setViewportSize(1980, 1080));        return context;    }    /**     * 创建浏览器     *     * @param name     * @param playwright     * @return     */    public Browser createBrowser(String name, Playwright playwright) {        try {            switch (name) {                case "firefox":                    return playwright.firefox().launch(new BrowserType.LaunchOptions().setHeadless(false).setTimeout(120 * 1000));                case "chromium":                    return playwright.chromium().launch(new BrowserType.LaunchOptions().setHeadless(false).setTimeout(120 * 1000));                case "webkit":                    return playwright.webkit().launch();            }        } catch (Exception e) {            e.printStackTrace();        }        return null;    }    @Test    public void testBrowser() {        //火狐浏览器        startBrowser("firefox");        //谷歌浏览器        startBrowser("chromium");        //这个浏览器不好使        //startBrowser("webkit");    }    /**     * 根据浏览器类型,启动浏览器     *     * @param browserName     */    private void startBrowser(String browserName) {        //创建Playwright        Playwright playwright = Playwright.create();        //创建Browser(使用谷歌浏览器)        Browser browser = createBrowser(browserName, playwright);        //创建浏览器上下文        BrowserContext browserContext = createContext(browser);        Page page = browserContext.newPage();        page.navigate("https://www.cnblogs.com/longronglang");        System.out.println("page.title :" + page.title());        System.out.println(browserName + " 浏览器启动了!");        browser.close();        browserContext.close();        playwright.close();    }}

推荐阅读