1

http://seleniumhq.org/docs/03_webdriver.jspから、次のJavaサンプルコードが表示されます。

(new WebDriverWait(driver, 10)).until(new ExpectedCondition<Boolean>() {
  public Boolean apply(WebDriver d) {
    return d.getTitle().toLowerCase().startsWith("cheese!");
  }
});

CF10の動的プロキシを使用して、上記のコードをCFMLで記述できますか?

CF10のクロージャーを上記のコードサンプルで動作させることができれば素晴らしいと思いますが、予想されるJavaインターフェイスとJavaリターンタイプのために動作しないようですが、正しいですか?

4

1 に答える 1

3

どちらが良い選択肢かわかりません。ただし、動的プロキシを使用することは可能です。ExpectedConditionインターフェイスを実装するcfcを作成するだけです。

component {
    public boolean function apply(Any d) {
        return d.getTitle().toLowerCase().startsWith("cheese!");
    } 
}

次に、プロキシのインスタンスを作成し、のコンストラクターに渡します。WebDriverWait

<cfscript>
    driver = createObject("java", "org.openqa.selenium.firefox.FirefoxDriver").init();
    driver.get("http://www.google.com");

    by = createObject("java", "org.openqa.selenium.By");
    element = driver.findElement(By.name("q"));

    WriteDump("Page title is: "& driver.getTitle());

    element.sendKeys(["Cheese!"]);
    element.submit();

    conditionProxy = createDynamicProxy("test.ExpectedConditionProxy", ["org.openqa.selenium.support.ui.ExpectedCondition"]); 
    WebDriverWait = createObject("java", "org.openqa.selenium.support.ui.WebDriverWait");
    WebDriverWait.init(driver, 10).until( conditionProxy );
    WriteDump("Page title is: "& driver.getTitle());

    driver.quit();
</cfscript>
于 2013-01-23T03:14:31.983 に答える