playwright-setInputFiles 上传文件
一、setInputFiles上传文件
setInputFiles 是java 提供的上传文件的方法。
传参如图
locator.setInputFiles(Paths.get("D:\\屏幕截图.png"));二、例子
有如下html 网站,上传按钮
①工具类TestPlayWright
import com.microsoft.playwright.*; import com.microsoft.playwright.options.AriaRole; import com.microsoft.playwright.options.ServiceWorkerPolicy; import java.util.ArrayList; import java.util.List; public class TestPlayWright { public Playwright playwright; public Browser browser; public BrowserContext context; public Page page; public int slowMo = 200; public boolean headless = false; public String bowserName = "CHROMIUM"; public Page getPage() { return page; } public void init(){ List<String> argslist = new ArrayList<String>(); argslist.add("--window-position=" + -8 + "," + 0); playwright = Playwright.create(); switch (bowserName) { case "CHROMIUM": browser = playwright.chromium().launch(new BrowserType.LaunchOptions().setArgs(argslist) .setHeadless(headless) .setSlowMo(slowMo)); break; case "FIREFOX": browser = playwright.firefox().launch(new BrowserType.LaunchOptions() .setHeadless(headless).setArgs(argslist) .setSlowMo(slowMo)); break; case "WEBKIT": browser = playwright.webkit().launch(new BrowserType.LaunchOptions() .setHeadless(headless).setArgs(argslist) .setSlowMo(slowMo)); break; } assert browser != null; Browser.NewContextOptions contextOpts = new Browser.NewContextOptions() .setServiceWorkers(ServiceWorkerPolicy.BLOCK); // 屏蔽所有 Service Worker context = browser.newContext(contextOpts); // # 2. 清除当前上下文的所有 Cookie(推荐) context.clearCookies(); page = context.newPage(); } public void browserClose(){ if(browser!=null){ browser.close(); } } public void playwrightClose() { if(playwright!=null){ playwright.close(); } } }②新建测试类 TestUpload
import com.microsoft.playwright.Locator; import com.microsoft.playwright.Page; import java.nio.file.Path; import java.nio.file.Paths; public class TestUpload { public static void main(String[] args) { TestPlayWright test = new TestPlayWright(); //初始化创建page对象 test.init(); Page page = test.getPage(); //打开测试页面 page.navigate("file:///E:/playwright/testDemo/全类型HTML表单&iframe综合测试页.html"); //获取 提示文本为【请输入密码】的定位 Locator locator = page.locator("//*[@id=\"testForm\"]/div[1]/input[17]"); //悬浮操作 locator.hover(); //高亮 locator.highlight(); //停2秒 page.waitForTimeout(2000); //上传文件 locator.setInputFiles(Paths.get("D:\\屏幕截图.png")); //停2秒 page.waitForTimeout(2000); //关闭浏览器 test.browserClose(); //关闭 playwright test.playwrightClose(); } }③执行效果如图:
④想要上传多个,只要分装下方法
import com.microsoft.playwright.Locator; import com.microsoft.playwright.Page; import java.nio.file.Path; import java.nio.file.Paths; public class TestUpload { public static void main(String[] args) { TestPlayWright test = new TestPlayWright(); //初始化创建page对象 test.init(); Page page = test.getPage(); //打开测试页面 page.navigate("file:///E:/playwright/testDemo/全类型HTML表单&iframe综合测试页.html"); //获取 上传文件按钮的定位 Locator locator = page.locator("//*[@id=\"testForm\"]/div[1]/input[17]"); //悬浮操作 locator.hover(); //高亮 locator.highlight(); //停2秒 page.waitForTimeout(2000); //上传文件 // locator.setInputFiles(Paths.get("D:\\屏幕截图.png")); //上传多个文件 uploadFile(locator,"D:\\屏幕截图.png","D:\\屏幕截图.png"); //停2秒 page.waitForTimeout(2000); //关闭浏览器 test.browserClose(); //关闭 playwright test.playwrightClose(); } /** * 本地文件上传 */ public static void uploadFile(Locator locator,String... filePaths) { Path[] paths = new Path[filePaths.length]; for (int i = 0; i < filePaths.length; i++) { paths[i] = Paths.get(filePaths[i]); } locator.setInputFiles(paths); } }运行效果如图:
二、通过葫芦娃ui自动化工具操作
①打开葫芦娃ui自动化工具
②加载对应step.xlsx和data.xlsx
③step.xlsx配置如图:
case sheet输入如下
④创建对应sheet [ 测试上传文件] 如下,定位方法选择 uploadFile:
⑤切换到工具,点击运行:
⑥执行结果如下:
运行效果和上面一样
完全零代码,直接维护excel 就行,谢谢大家的支持,可以点个赞或转发。谢谢大家~
想要工具可以私聊 或者直接打赏哈~
