昨天运行了包含playwright和testng的代码, 运行后直接报错,发现是
page.locator中的参数写错了,应该是"#kw",少写了一个 #号。这样page.locator找不到对应的控件,也就无法执行后面的操作。更新代码后,程序终于是可以跑起来了。具体代码如下:
package org.example;import com.microsoft.playwright.*;import org.testng.Assert;import org.testng.annotations.AfterClass;import org.testng.annotations.BeforeClass;import org.testng.annotations.Test;import java.util.Collections;/* 用例编写*/public class PlaywrightDemo {
//先定义一些参数 static Playwright playwright; Browser browser; BrowserType browserType; BrowserContext browserContext; Page page; //先执行打开浏览器的网页 @BeforeClass public static void launchBrowser(){
playwright = Playwright.create(); browser = playwright.chromium().launch(new BrowserType.LaunchOptions()
.setArgs(Collections.singletonList("--start-maximized"))
.setHeadless(false).setSlowMo(5000)); browserContext = browser.newContext(new Browser.NewContextOptions()
.setViewportSize(1920,1080)); page = browserContext.newPage(); }
//真正想测试的内容 @Test //TestNG的使用方法 public void playwrightTest(){
//打开百度 page.navigate("https://www.baidu.com"); //输入内容 page.locator("#kw").fill("公众号:蛋蛋杂谈"); //输入回车键 page.locator("#kw").press("Enter"); String value = page.getAttribute("#kw","value"); Assert.assertEquals(value,"公众号:蛋蛋杂谈"); System.out.println(page.url()); }
//case执行完后,再执行方法 @AfterClass public void afterClass(){
browser.close(); browserContext.close(); playwright.close(); }
}
截图如下:
点击类的执行按钮或者testng方法前的执行按钮都可以运行该程序
@Test后的代码也是可执行的
在assert判断时报错了,具体展示如下:
java.lang.AssertionError:
Expected :公众号:蛋蛋杂谈
Actual :
还有一个warning:
[TestNGContentHandler] [WARN] It is strongly recommended to add "<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >" at the top of your file, otherwise TestNG may fail or not work as expected.
针对下面这个提示,根据class创建testng.xml文件
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"><suite name="All Test Suite"> verbose="2" preserve-order="true" name="D:/code_liepin/playwrightDemo/src/main/java/org/example/PlaywrightDemo.java"> <classes> name="org.example.PlaywrightDemo"> <methods> name="playwrightTest"/> </methods> </class> </classes> </test></suite>
但是运行后还是提示 需要将一句话放在文件的顶部
给大家看下各个插件的版本:
尽量都用这些版本,尤其是testng, 如果选择7.7.0版本,会提示需要升级jdk到11, 所以还是尽量用低版本的,如果用的jdk8的话。
好了,今天先到这里,遗留的两个问题等上完线后再处理。