<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Playwright | ゴーゴーリラックスライフブログ</title>
	<atom:link href="https://gogorelaxlifeblog.com/tag/playwright/feed/" rel="self" type="application/rss+xml" />
	<link>https://gogorelaxlifeblog.com</link>
	<description></description>
	<lastBuildDate>Mon, 10 Jul 2023 14:23:35 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.7.2</generator>
<atom:link rel="hub" href="https://pubsubhubbub.appspot.com"/><atom:link rel="hub" href="https://pubsubhubbub.superfeedr.com"/><atom:link rel="hub" href="https://websubhub.com/hub"/>	<item>
		<title>Playwrightでブラウザ操作からコード自動生成【RPA自動化】</title>
		<link>https://gogorelaxlifeblog.com/playwright_auto_coding/</link>
					<comments>https://gogorelaxlifeblog.com/playwright_auto_coding/#respond</comments>
		
		<dc:creator><![CDATA[ごゆるり一族]]></dc:creator>
		<pubDate>Mon, 10 Jul 2023 14:23:22 +0000</pubDate>
				<category><![CDATA[技術]]></category>
		<category><![CDATA[Playwright]]></category>
		<guid isPermaLink="false">https://gogorelaxlifeblog.com/?p=1134</guid>

					<description><![CDATA[Playwrightを使ってブラウザ操作からJavaとJavaScriptのコードを自動生成してみました。 この記事では手順を説明させていただきます。 目次 Playwrightとは開発環境mavenを用意mavenプロ [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Playwrightを使ってブラウザ操作からJavaとJavaScriptのコードを自動生成してみました。</p>



<p>この記事では手順を説明させていただきます。</p>



  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">Playwrightとは</a></li><li><a href="#toc2" tabindex="0">開発環境</a></li><li><a href="#toc3" tabindex="0">mavenを用意</a></li><li><a href="#toc4" tabindex="0">mavenプロジェクト作成</a></li><li><a href="#toc5" tabindex="0">コード自動生成</a></li><li><a href="#toc6" tabindex="0">JavaScriptのコード自動生成</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading has-cocoon-white-color has-deep-orange-background-color has-text-color has-background"><span id="toc1">Playwrightとは</span></h2>
<p>PlaywrightとはWebブラウザを自動操作するためのライブラリです。</p>
<p>自動操作ができるため、E2Eテストの効率化に用いられます。</p>
<p>Microsoftが開発してますが、EdgeだけでなくChrome、Firefox、Safariでも使用できます。</p>


<p></p>


<h2 class="wp-block-heading has-cocoon-white-color has-deep-orange-background-color has-text-color has-background"><span id="toc2">開発環境</span></h2>
<p>後述の操作を行った時の環境は以下の通りとなります。</p>


<figure class="wp-block-flexible-table-block-table"><table class=""><thead><tr><th>環境</th><th>バージョン</th></tr></thead><tbody><tr><td>OS</td><td>Windows 10 64bit</td></tr><tr><td>VSCode</td><td>1.80.0</td></tr><tr><td>VSCodeの拡張機能</td><td>Extension Pack for Java 20.250.022インストール済</td></tr><tr><td>Amazon Corretto</td><td>17.0.6.10</td></tr><tr><td>Git Bash</td><td>2.39.2.windows.1</td></tr><tr><td>npm</td><td>9.6.7</td></tr><tr><td>node.js</td><td>20.3.0</td></tr></tbody></table></figure>



<p></p>


<h2 class="wp-block-heading has-cocoon-white-color has-deep-orange-background-color has-text-color has-background"><span id="toc3">mavenを用意</span></h2>
<p>Javaのコードを自動生成するためにはmavenが必要になるので用意します。</p>
<p>以下のページから「apache-maven-X.X.X-bin.zip」をダウンロードします（私がダウンロードしたのはバージョン3.9.3でした）。</p>

<a rel="noopener" href="https://maven.apache.org/download.cgi" title="Download Apache Maven &#8211; Maven" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img decoding="async" src="https://s.wordpress.com/mshots/v1/https%3A%2F%2Fmaven.apache.org%2Fdownload.cgi?w=160&#038;h=90" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Download Apache Maven &#8211; Maven</div><div class="blogcard-snippet external-blogcard-snippet"></div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://maven.apache.org/download.cgi" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">maven.apache.org</div></div></div></div></a>
<p>ダウンロードしたmavenを適当なフォルダに解凍します。</p>
<p>私は以下のように「C:\sample」に解凍しました。</p>
<p><img fetchpriority="high" decoding="async" class="alignnone wp-image-1157 size-full" src="https://gogorelaxlifeblog.com/wp-content/uploads/2023/07/maven.png" alt="" width="638" height="155" srcset="https://gogorelaxlifeblog.com/wp-content/uploads/2023/07/maven.png 638w, https://gogorelaxlifeblog.com/wp-content/uploads/2023/07/maven-300x73.png 300w" sizes="(max-width: 638px) 100vw, 638px" /></p>
<p>続いてVSCodeのコンソールからmavenのコマンドが実行できるように環境変数を追加します。</p>
<p>以下のように「Path」にmavenのbinフォルダを追加します。</p>
<p><img decoding="async" class="alignnone wp-image-1164 size-full" src="https://gogorelaxlifeblog.com/wp-content/uploads/2023/07/environment_variable.png" alt="" width="524" height="497" srcset="https://gogorelaxlifeblog.com/wp-content/uploads/2023/07/environment_variable.png 524w, https://gogorelaxlifeblog.com/wp-content/uploads/2023/07/environment_variable-300x285.png 300w" sizes="(max-width: 524px) 100vw, 524px" /></p>


<p></p>


<h2 class="wp-block-heading has-cocoon-white-color has-deep-orange-background-color has-text-color has-background"><span id="toc4">mavenプロジェクト作成</span></h2>
<p>vscodeを起動してコマンドパレットから「Java:Create Java Project」を選択します。</p>
<p><img decoding="async" class="alignnone wp-image-1167 size-full" src="https://gogorelaxlifeblog.com/wp-content/uploads/2023/07/create_java_project.png" alt="" width="620" height="96" srcset="https://gogorelaxlifeblog.com/wp-content/uploads/2023/07/create_java_project.png 620w, https://gogorelaxlifeblog.com/wp-content/uploads/2023/07/create_java_project-300x46.png 300w" sizes="(max-width: 620px) 100vw, 620px" /></p>
<p>「Maven create from archetype」を選択します。</p>
<p><img decoding="async" class="alignnone wp-image-1171 size-full" src="https://gogorelaxlifeblog.com/wp-content/uploads/2023/07/maven_create_from_archetype-e1688912772627.png" alt="" width="601" height="379" srcset="https://gogorelaxlifeblog.com/wp-content/uploads/2023/07/maven_create_from_archetype-e1688912772627.png 601w, https://gogorelaxlifeblog.com/wp-content/uploads/2023/07/maven_create_from_archetype-e1688912772627-300x189.png 300w" sizes="(max-width: 601px) 100vw, 601px" /></p>
<p>「maven-archetype-quickstart」を選択します。</p>
<p><img decoding="async" class="alignnone wp-image-1174 size-full" src="https://gogorelaxlifeblog.com/wp-content/uploads/2023/07/maven_archetype_quickstart.png" alt="" width="606" height="374" srcset="https://gogorelaxlifeblog.com/wp-content/uploads/2023/07/maven_archetype_quickstart.png 606w, https://gogorelaxlifeblog.com/wp-content/uploads/2023/07/maven_archetype_quickstart-300x185.png 300w" sizes="(max-width: 606px) 100vw, 606px" /></p>
<p>mavenのバージョンを選択します。</p>
<p>私は「1.4」を選択しました。</p>
<p><img decoding="async" class="alignnone wp-image-1177 size-full" src="https://gogorelaxlifeblog.com/wp-content/uploads/2023/07/maven_1.4.png" alt="" width="608" height="285" srcset="https://gogorelaxlifeblog.com/wp-content/uploads/2023/07/maven_1.4.png 608w, https://gogorelaxlifeblog.com/wp-content/uploads/2023/07/maven_1.4-300x141.png 300w" sizes="(max-width: 608px) 100vw, 608px" /></p>
<p>パッケージ名を入力します。任意の名称で大丈夫です。</p>
<p>ここでは「com.example」とします。</p>
<p><img decoding="async" class="alignnone wp-image-1179 size-full" src="https://gogorelaxlifeblog.com/wp-content/uploads/2023/07/maven_package_name.png" alt="" width="600" height="127" srcset="https://gogorelaxlifeblog.com/wp-content/uploads/2023/07/maven_package_name.png 600w, https://gogorelaxlifeblog.com/wp-content/uploads/2023/07/maven_package_name-300x64.png 300w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p>プロジェクト名を入力します。任意の名称で大丈夫です。</p>
<p>ここでは「demo」とします。</p>
<p><img decoding="async" class="alignnone wp-image-1181 size-full" src="https://gogorelaxlifeblog.com/wp-content/uploads/2023/07/maven_package_name_demo.png" alt="" width="604" height="135" srcset="https://gogorelaxlifeblog.com/wp-content/uploads/2023/07/maven_package_name_demo.png 604w, https://gogorelaxlifeblog.com/wp-content/uploads/2023/07/maven_package_name_demo-300x67.png 300w" sizes="(max-width: 604px) 100vw, 604px" /></p>
<p>次に現在作成中のmavenプロジェクトの保存先を選択します。</p>
<p>ここでは「D:\Project\playwright_sample」とします。</p>
<p>続いてvscodeのターミナル上でコマンドが実行されるので入力を行っていきます。</p>
<p>ターミナル上で入力が必要な箇所のみ抜粋して以下に記載します。</p>


<pre class="wp-block-code plaintext"><code>Define value for property 'version' 1.0-SNAPSHOT: :　<span class="red"><span class="green">← 何も入力せずEnterキー押下。</span></span>
 Y: :　<span class="red"><span class="green">← 何も入力せずEnterキー押下。</span></span></code></pre>


<h2 class="wp-block-heading has-cocoon-white-color has-deep-orange-background-color has-text-color has-background"><span id="toc5">コード自動生成</span></h2>


<p>作成したmavenプロジェクトのフォルダをvscodeで開きます。</p>



<p>pom.xmlのdependenciesタグ内に以下の緑字を追加します。</p>



<p>今回はplaywrightの1.35.1をインストールしてます。</p>



<pre class="wp-block-code plaintext"><code>  &lt;dependencies>
    …
<span class="green">    &lt;dependency>
      &lt;groupId>com.microsoft.playwright&lt;/groupId>
      &lt;artifactId>playwright&lt;/artifactId>
      &lt;version>1.35.1&lt;/version>
    &lt;/dependency></span>
  &lt;/dependencies></code></pre>



<p>vscodeのターミナル上でpom.xmlがある場所に移動します。</p>



<p>その後に以下のコマンドを実行します。</p>



<p>今回は例としてamazonでの操作内容を自動生成するために「www.amazon.co.jp」を指定してます。</p>



<pre class="wp-block-code plaintext"><code>mvn exec:java -e -D exec.mainClass=com.microsoft.playwright.CLI -D exec.args="codegen www.amazon.co.jp"</code></pre>


<p>以下のようにブラウザが立ち上がります。</p>
<p>右側に表示されてるPlaywright Inspectorに自動生成されたコードが出力されます。</p>
<p><img decoding="async" class="alignnone wp-image-1218 size-full" src="https://gogorelaxlifeblog.com/wp-content/uploads/2023/07/playwright_start.jpg" alt="" width="1762" height="609" srcset="https://gogorelaxlifeblog.com/wp-content/uploads/2023/07/playwright_start.jpg 780w, https://gogorelaxlifeblog.com/wp-content/uploads/2023/07/playwright_start-300x104.jpg 300w, https://gogorelaxlifeblog.com/wp-content/uploads/2023/07/playwright_start-1024x354.jpg 1024w, https://gogorelaxlifeblog.com/wp-content/uploads/2023/07/playwright_start-768x265.jpg 768w, https://gogorelaxlifeblog.com/wp-content/uploads/2023/07/playwright_start-1536x531.jpg 1536w" sizes="(max-width: 1762px) 100vw, 1762px" /></p>

<p>実際にコードの自動生成を行った様子は以下の通りです。</p>
<p>Amazonで「アーマードコア6」を検索してみました😁</p>
<p>Playwright Inspectorに自動生成されたコードが出力されてます。</p>
<p><img decoding="async" class="alignnone wp-image-1226 size-full" src="https://gogorelaxlifeblog.com/wp-content/uploads/2023/07/playwright_auto_coding.gif" alt="" width="1869" height="592" /></p>


<p>自動生成されたコードは以下のものとなります。</p>



<pre class="wp-block-code java"><code>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&#91;] args) {
    try (Playwright playwright = Playwright.create()) {
      Browser browser = playwright.chromium().launch(new BrowserType.LaunchOptions()
        .setHeadless(false));
      BrowserContext context = browser.newContext();
      Page page = context.newPage();
      page.navigate("https://www.amazon.co.jp/");
      page.getByPlaceholder("検索 Amazon.co.jp").click();
      page.getByPlaceholder("検索 Amazon.co.jp").fill("アーマードコア６");
      page.getByPlaceholder("検索 Amazon.co.jp").press("Enter");
      Page page1 = page.waitForPopup(() -> {
        page.getByRole(AriaRole.LINK, new Page.GetByRoleOptions().setName("【PS5】ARMORED CORE Ⅵ FIRES OF RUBICON 【数量限定特典】MELANDER C3 G13 特別仕様「TENDERFOOT」 同梱")).first().click();
      });
      page1.getByRole(AriaRole.BUTTON, new Page.GetByRoleOptions().setName("今すぐご予約ください")).click();
    }
  }
}</code></pre>



<p></p>


<h2 class="wp-block-heading has-cocoon-white-color has-deep-orange-background-color has-text-color has-background"><span id="toc6">JavaScriptのコード自動生成</span></h2>
<p>JavaScriptの場合はmavenなど何も必要がなく、以下のコマンドを実行するだけです。</p>


<pre class="wp-block-code plaintext"><code>npx playwright codegen www.amazon.co.jp</code></pre>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://gogorelaxlifeblog.com/playwright_auto_coding/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
