前提・実現したいこと
VSCodeの画面上の「Run Test|Debug Test」のDebug Test押下でデバッグ実行時、
コマンドラインで実行しているのと同じ内容を引数でプログラムに渡して実行したい。
プログラムの実行内容としては以下になります。
①Googleトップページを開く
②「天気」と検索する
③yahoo天気のリンクを押下
④areを入力して検索する
上記実行時にコマンドラインで実行しているのは以下です。
mvn test Dtest=Weather -Darea="東京"
このコマンドと同じようにVSCodeの画面上からデバッグ実行した時も
「-Darea="東京"」を渡してあげるようにしたいです。
発生している問題・エラーメッセージ
areaを渡せていないので、Webサイト上のareaを入力する箇所で、何も入力されず処理が終わります。
下記のソースコードでいうと「$("#searchText").setValue(area);」が該当の箇所になります。
該当のソースコード
◾️Weather.java
Java
1package com.example.app; 2 3import static com.codeborne.selenide.Selenide.*; 4import com.codeborne.selenide.Configuration; 5import com.codeborne.selenide.WebDriverRunner; 6import org.junit.jupiter.params.ParameterizedTest; 7import org.junit.jupiter.params.provider.CsvFileSource; 8 9 10class Weather { 11 @ParameterizedTest 12 @CsvFileSource(resources = "Weather.csv", numLinesToSkip = 1) 13 void openWeather(String ward) { 14 String area = System.getProperty("area"); 15 area = "東京"; 16 17 Configuration.browser = WebDriverRunner.CHROME; 18 // Configuration.headless = true; 19 20 // Googleトップページ 21 open("https://www.google.co.jp/"); 22 23 // "天気"を検索 24 $("input[type=text]").val("天気").pressEnter(); 25 26 // Youtube検索ページへ飛ぶ 27 $x("//a[@href='https://weather.yahoo.co.jp/weather/jp/13/4410/13120.html']").click(); 28 29 $("#searchText").setValue(area); 30 $("#yjw_button_search").click(); 31 $x("//a[text()= '" + ward + "']").click(); 32 33 } 34}
試したこと
launch.json内にargsを設定すれば引数を渡せるとネットで見たので以下の通りにしました。
◾️launch.json
{ "version": "0.2.0", "configurations": [ { "type": "java", "name": "Debug (Launch) - Current File", "request": "launch", "mainClass": "${file}", "args": "-Darea=\"東京\"" } ] }
しかしVScode画面上の左側に出る変数欄に何も表示されず、引数が渡されていないようでした。
補足情報(FW/ツールのバージョンなど)
各ツールのバージョンは以下の通り
selenide:5.5.2
VSCode:1.41.0
念のため階層情報も添付いたします。
ちなみにですが。。。
areaについてソースコードやCSVで明記していないのは諸々の理由があり、、、
System.getPropertyによって引数を受け取るような処理にしています。
あなたの回答
tips
プレビュー