带有SeleniumWebDriver的Java8
我不熟悉带有SeleniumWebDriver的Java8,java,selenium,java-8,appium,Java,Selenium,Java 8,Appium,我不熟悉Java-8和appium,并尝试在Java-8中编写我的webdriver代码,如下所述 目前,下面的代码运行良好,但我不想像下面第5行和第6行中提到的那样,在单独的行中编写函数和消费者,我想进一步优化代码,即类似于消费者中的函数或函数中的消费者。谢谢!提前 public class Gestures_Drag_And_Drop { AndroidDriver<AndroidElement> driver; Function<String, A
Java-8
和appium,并尝试在Java-8
中编写我的webdriver代码,如下所述
目前,下面的代码运行良好,但我不想像下面第5行和第6行中提到的那样,在单独的行中编写函数和消费者,我想进一步优化代码,即类似于消费者中的函数或函数中的消费者。谢谢!提前
public class Gestures_Drag_And_Drop {
AndroidDriver<AndroidElement> driver;
Function<String, AndroidElement> F = driver::findElementByXPath;//line 5
Consumer<AndroidElement> C = AndroidElement::click; //line 6
Gestures_Drag_And_Drop() {
C.accept(F.apply("//android.widget.TextView[@text='Views']"));
}
public static void main(String[] args) throws MalformedURLException {
new Gestures_Drag_And_Drop();
}
}
公共类手势\u拖放{
机器人驱动;
函数F=driver::findelementbypath;//第5行
消费者C=AndroidElement::单击;//第6行
手势拖动和拖放(){
C.accept(F.apply(“//android.widget.TextView[@text='Views']”);
}
publicstaticvoidmain(字符串[]args)引发畸形的DurLexException{
新的手势“拖放”();
}
}
您的函数或使用者变量不需要只是方法引用,您可以使用lambda表达式定义您想要的任何方法体。我猜你是在要求这样的东西:
BiConsumer<String, WebDriver> findAndClick = (locator, webdriver) -> webdriver.findElement(By.xpath(locator)).click();
BiConsumer findAndClick=(locator,webdriver)->webdriver.findElement(By.xpath(locator)).click();