HeartCore Roboドキュメント一覧 |
2023-01-04 |
バージョン5.0はSelenium WebDriverとの統合を提供し、単一スクリプトから画像ベースとWebブラウザを組み合わせた自動化の実現を可能にしました。
特徴:
Browserコマンドの環境設定画面は、いくつかのSeleniumの設定オプションをサポートしています。
Browser find "コマンドは、見つかった要素の数とその属性のいくつかを変数のセットで公開します:
変数名 | 内容 |
_WEB_COUNT=<number> |
"Browser find"で取得した要素数 |
_WEB_X_ _WEB_Y_ _WEB_W_ _WEB_H_ |
n番目の要素のX、Y座標、幅、高さ |
_WEB_TEXT(_<n>)= |
n番目の要素のテキスト(累積/すべての子要素のテキストを含む) |
簡単な例でロボットの能力を実証しましょう:
Javaの純粋なSeleniumソリューションは次のようになります。:
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.By;
public class WikipediaAutomation {
public static void main(String args[]) {
// Set path to the Firefox/Gecko driver
System.setProperty("webdriver.gecko.driver", "C:\\Selenium\\geckodriver.exe");
// Create the driver and execute the script
WebDriver driver = new FirefoxDriver();
// Open the Wikipedia home page
driver.get("https://www.wikipedia.org");
WikipediaAutomation script = new WikipediaAutomation();
script.automate(driver);
}
public void automate(WebDriver driver) {
// Enter 'automation' into the search field
driver.findElement(By.id("searchInput")).sendKeys("automation");
// Submit the form using the button next to the field
driver.findElement(By.xpath("//button")).submit();
}
}
Robotで同じスクリプトを設計するには、前の章で説明した"Browser open"と"Browser find"プロパティウィンドウを使用します。
Browser "open" browser="firefox" url="https://www.wikipedia.org"
Browser "find"
id="searchInput"
elaction="type"
eltext="automation"
Browser "find" tagname="button" elaction="submit"
browserOpen("firefox", "https://www.wikipedia.org");
browserFindAndType("automation", "id", "searchInput");
browserFindAndSubmit("tagname", "button");
HeartCore RoboはすべてのSelenium機能をサポートしているわけではありません。Javaテストスクリプトから、Javaコードのレベルで未サポートのSeleniumの機能を利用するためには以下のようなスクリプトを作成します。
WebDriverAdapter adapter = WebDriverAdapterFactory.getInstance().getAdapter(getContext(), WebDriverAdapter.ADAPTER_NAME_SELENIUM);
org.openqa.selenium.WebDriver driver = (org.openqa.selenium.WebDriver) adapter.getDriver();
たとえば、TPR テストスクリプトから JavaScript のポップアップを受け入れて破棄するには、次のJavaコードブロックを使用します。
java {
import com.tplan.robot.remoteclient.webdriver.WebDriverAdapter;
import com.tplan.robot.remoteclient.webdriver.WebDriverAdapterFactory;
WebDriverAdapter adapter = WebDriverAdapterFactory.getInstance().getAdapter(getContext(), WebDriverAdapter.ADAPTER_NAME_SELENIUM);
org.openqa.selenium.WebDriver driver = (org.openqa.selenium.WebDriver) adapter.getDriver();
driver.switchTo().alert().accept();
} endjava
既存のSelenium JavaコードはRobotスクリプトと自由に組み合わせることができます。 2つのエンティティが共有しなければならないのはSelenium Webドライバオブジェクト(org.openqa.selenium.WebDriver
インスタンス)だけです。HeartCore Roboフレームワークのキークラスはcom.tplan.robot.remoteclient.webdriver.WebDriverAdapterFactory
です。これにより、実行スクリプトに割り当てられたドライバラッパークラス(WebDriverAdapter
)にアクセスできます。
たとえば、HeartCore RoboからFirefoxを使ってWikipediaのホームページを開き、上記の純粋なSeleniumの例を使用して自動化を実行するには、次のようにJavaテストスクリプトを作成します。
package test;
import com.tplan.robot.scripting.*;
import com.tplan.robot.*;
import com.tplan.robot.remoteclient.webdriver.*;
import java.io.*;
public class RobotWikipediaScript extends DefaultJavaTestScript {
public void test() {
try {
// "Browser open"を呼び出しドライバを作成する
browserOpen("firefox", "https://www.wikipedia.org");
// HeartCore RoboフレームワークからSeleniumドライバの参照を取得します
WebDriverAdapter adapter = WebDriverAdapterFactory.getInstance().getAdapter(getContext(), WebDriverAdapter.ADAPTER_NAME_SELENIUM);
org.openqa.selenium.WebDriver driver = (org.openqa.selenium.WebDriver) adapter.getDriver();
// 既存のサンプルSeleniumスクリプトを呼び出す
WikipediaAutomation seleniumScript = new WikipediaAutomation();
seleniumScript.automate(driver);
} catch (StopRequestException ex) {
throw ex;
} catch (IOException ex) {
ex.printStackTrace();
throw new IllegalStateException(ex);
}
}
public static void main(String args[]) {
RobotWikipediaScript script = new RobotWikipediaScript();
ApplicationSupport robot = new ApplicationSupport();
AutomatedRunnable runnable = robot.createAutomatedRunnable(script, "RobotWikipediaScript@" + Integer.toHexString(script.hashCode()), args, System.out, false);
new Thread(runnable).start();
}
}
TPRスクリプトから直接存在するSeleniumスクリプトを呼び出すことはできません。Seleniumの実行をRobot Javaスクリプトにラップしてから、Runコマンドを使用してそれを呼び出す必要があります。
たとえば、TPRスクリプトから自動化を推進するには、上記のRobotWikipediaScriptの例から browserOpen("firefox", "https://www.wikipedia.org")
メソッド呼び出しを削除し、TPRから次のように呼び出します:
Browser "open" browser="firefox" url="https://www.wikipedia.org"
Run "test.RobotWikipediaScript"
上記の例を機能させるには、コンパイルされたSeleniumコード(JARまたはコンパイルされたWikipediaAutomation
を含むクラスパス)をHeartCore Roboのクラスパスに配置してください。