我正在尝试在Selenium2/WebDriver项目中使用
webdriver-clj
WebDriver的包装。
但是,由于WebInterface是大量编写脚本的,所以我需要有一个选项来等待脚本创建某些元素,而不是页面加载。
所以我尝试在Clojure中创建一个wait-for函数,使用
WebDriverWait
类来逐个属性测试元素,最好使用WebDriver/By-函数中的Clojure语法。
但是,侍者类直到方法将一个通用接口(COM.谷歌.Cudio.Base.For)作为参数,并且由于我的Java知识接近于不存在,这对于我刚刚起步的CuljeRead技能来说是太多了。
任何人都有Culjress Java互操作技巧,以及如何在Culjure中实现下面的Java代码,因此它与WebDistor/B-语法相结合?
Function<WebDriver, WebElement> presenceOfElementLocated(final By locator) {
return new Function<WebDriver, WebElement>() {
public WebElement apply(WebDriver driver) {
return driver.findElement(locator);
}
};}
// ...
driver.get("http://www.google.com");
WebDriverWait wait = new WebDriverWait(driver, /*seconds=*/3);
WebElement element =
wait.until(presenceOfElementLocated(By.name("q"))
这样的结果会使类似的事情成为可能
(defn test []
(let [driver (webdriver/new-driver :firefox)]
(webdriver/get driver "http://127.0.0.1/")
(webdriver/wait-for (webdriver/by-name "button"))
))