में जावा जेनेरिक इंटरफेस को कार्यान्वित करना मैं वेबड्राइवर के लिए webdriver-clj रैपर का उपयोग करके सेलेनियम 2/वेबड्राइवर प्रोजेक्ट में क्लोजर का लटका पाने की कोशिश कर रहा हूं।क्लोजर
हालांकि, चूंकि वेबइंटरफेस भारी लिपिबद्ध है, इसलिए मुझे पृष्ठ लोड के बजाय स्क्रिप्ट द्वारा कुछ तत्व बनाए जाने तक प्रतीक्षा करने का विकल्प होना चाहिए।
तो मैं WebDriverWait कक्षा का उपयोग करके गुण के द्वारा परीक्षण के लिए क्लोजर में प्रतीक्षा-फ़ंक्शन फ़ंक्शन बनाने का प्रयास कर रहा था, अधिमानतः वेबड्राइवर/बाय-फ़ंक्शंस से क्लोजर सिंटैक्स का उपयोग करना।
हालांकि, विधि तक प्रतीक्षाकर्ता वर्ग एक सामान्य इंटरफ़ेस (com.google.common.base.Function) को पैरामीटर के रूप में लेता है, और चूंकि मेरा जावा ज्ञान किसी भी तरह के निकट नहीं है, यह मेरे शुरुआती क्लोजर कौशल के लिए बहुत अधिक साबित हो रहा है।
क्लोजर-जावा इंटरऑप कौशल के साथ कोई भी व्यक्ति और क्लोजर में निम्नलिखित जावा कोड को कार्यान्वित करने का विचार है ताकि यह वेबड्राइवर/बाय-सिंटैक्स के साथ मिल सके?
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"))
))