是否可以将Selenium 2 WebDriverWait与ColdFusion一起使用?

时间:2013-01-23 01:42:46

标签: coldfusion selenium-webdriver coldfusion-10

来自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!");
  }
});

是否可以在CFML中编写上面的代码,可能是在CF10 dynamic proxy的帮助下?

如果我们可以让CF10的closure使用上面的代码示例,那将是非常棒的,但是由于预期的Java接口和Java返回类型,它似乎不会起作用,我是否正确?

1 个答案:

答案 0 :(得分: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>