gpt4 book ai didi

Java:调用名称存储在变量中的方法

转载 作者:太空狗 更新时间:2023-10-29 22:49:29 26 4
gpt4 key购买 nike

我有这样的要求:

String command = "click";   // this can have value such as clear, getLocation, getSize, getTagName etc. 
WebDriver driver = new ChromeDriver(options); //creating a webdriver object
driver.findElement(By.id("id1")).click(); //Here I want "click" method should be called dynamically as per what I have stored in variable `command`.

那么,有没有可能像这样:

driver.findElement(By.id("id1")).<something to call click()>

我已经看过 Java 中的反射,但根据我的要求,这对我来说很复杂。任何指示都会有所帮助!

最佳答案

您的变量代表您想对网络元素执行的操作(在本例中,单击它)。

适合的类型不是 String .使用 Consumer<WebElement>相反(或者 driver.findElement() 返回的任何类型):

Consumer<WebElement> command = e -> e.click();

// ...

command.accept(driver.findElement(By.id("id1")));

这是类型安全的、高效的、可重构的,并且比反射灵活得多(因为您的消费者可以对元素做任何它想做的事情,不限于没有任何参数的单个方法调用。例如,输入一些文本在文本字段中)

关于Java:调用名称存储在变量中的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45959319/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com