Я пытаюсь получить виджет clojure в проекте selenium2/webdriver, используя webdriver-clj оболочку для webdriver.
Однако, поскольку webinterface сильно написан по сценарию, мне нужно иметь возможность ждать, пока определенные элементы будут созданы script, а не на загрузке страницы.
Итак, я пытался создать функцию ожидания в clojure, используя класс WebDriverWait для проверки элемента на атрибут, предпочтительно используя синтаксис clojure из webdriver/by-functions.
Тем не менее, класс waiter до тех пор, пока метод не примет общий интерфейс (com.google.common.base.Function) в качестве параметра, и поскольку мои знания Java почти не нужны, это слишком много значит для моих неоперившихся навыков clojure.
Кто-нибудь есть с clojure -java взаимодействием навыков и идея, как реализовать следующий java-код в clojure, чтобы он сочетался с webdriver/by-syntax?
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"))
))