首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么剧作家生成的Java代码语法无效?

为什么剧作家生成的Java代码语法无效?
EN

Stack Overflow用户
提问于 2022-10-19 13:01:36
回答 2查看 105关注 0票数 1

当我使用剧作家的codegen特性时,它会将我的点击路径跟踪到Java文件中。但是创建的文件语法错误,所以我无法编译它。

我以以下方式开始编码:

代码语言:javascript
复制
mvn exec:java -e -Dexec.mainClass=com.microsoft.playwright.CLI -Dexec.args="codegen wikipedia.org"

检查员提供了以下代码:

代码语言:javascript
复制
public class Example {
  public static void main(String[] args) {
    try (Playwright playwright = Playwright.create()) {
      Browser browser = playwright.chromium().launch(new BrowserType.LaunchOptions()
        .setHeadless(false));

      BrowserContext context = browser.newContext();
      page.navigate("https://en.wikipedia.org/wiki/Main_Page");
      page.getByPlaceholder("Search Wikipedia").click();
      page.getByPlaceholder("Search Wikipedia").fill("stackoverflow");
      page.getByRole("button", new Page.GetByRoleOptions().setName("Go")).click();
      assertThat(page).hasURL("https://en.wikipedia.org/wiki/Stack_Overflow");
    }
  }
}

但已经有了第一个错误。方法getByRole需要一个AriaRole作为它的第一个参数,而不是字符串。所以它很容易修复,但我认为这不是产品生成代码并让开发人员修复它的想法。

在一些YouTube教程中,检查器只生成填充和单击函数,里面有强大的选择器。

是否有办法将生成的输出更改为特定的“代码样式”?或者,还有另一个原因,为什么其他人得到了良好的工作代码,而我却没有?

我的依赖性:

代码语言:javascript
复制
<dependency>
    <groupId>com.microsoft.playwright</groupId>
    <artifactId>playwright</artifactId>
    <version>1.27.0</version>
</dependency>
EN

回答 2

Stack Overflow用户

发布于 2022-10-23 22:41:40

代码语言:javascript
复制
<dependency>
<groupId>com.microsoft.playwright</groupId>
<artifactId>playwright</artifactId>
<version>1.17.1</version>

我利用了这种依赖,它对我起作用

票数 0
EN

Stack Overflow用户

发布于 2022-10-26 07:43:24

对不起,如果我错了。但是你应该从一个编译良好的检查员那里得到这样的信息。

代码语言:javascript
复制
package org.example;
import com.microsoft.playwright.*;
import com.microsoft.playwright.options.*;
import static com.microsoft.playwright.assertions.PlaywrightAssertions.assertThat;
import java.util.*;
public class Example {
    public static void main(String[] args) {
        try (Playwright playwright = Playwright.create()) {
            Browser browser = playwright.chromium().launch(new BrowserType.LaunchOptions()
                    .setHeadless(false));
            BrowserContext context = browser.newContext();
            // Open new page
            Page page = context.newPage();
            // Go to https://www.wikipedia.org/
            page.navigate("https://www.wikipedia.org/");
            // Click input[name="search"]
            page.locator("input[name=\"search\"]").click();
            // Fill input[name="search"]
            page.locator("input[name=\"search\"]").fill("stackoverflow");
            // Click button:has-text("Search")
            page.locator("button:has-text(\"Search\")").click();
            assertThat(page).hasURL("https://en.wikipedia.org/wiki/Stack_Overflow");
        }
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74125792

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档