Реализация универсального интерфейса Java в Clojure

Я пытаюсь разобраться с clojure в проекте selenium2 / webdriver с помощью оболочки webdriver-clj . для webdriver.

Однако, поскольку веб-интерфейс содержит множество сценариев, мне нужно иметь возможность ждать, пока определенные элементы не будут созданы сценарием, а не при загрузке страницы.

Так что я пытался создать ожидание- для функции в clojure,

Кто-нибудь, имеющий навыки взаимодействия с clojure-java и имеющий представление о том, как реализовать следующий java-код в clojure, чтобы он сочетался с синтаксисом webdriver / by-?

Function presenceOfElementLocated(final By locator) {
return new Function() {
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"))
    ))

11
задан NielsK 22 October 2010 в 17:27
поделиться