java - 如何在类中使用字符串作为变量传递字符串作为参数

标签 java selenium selenium-webdriver

在可重用中我使用了变量

WebElement yellow = Driver.findElement(By.cssSelector("#yel"))

public void color(String color) { //something
}

现在在我的主类中,如果我调用以下方法:

cls.color("yellow")

颜色方法应使用黄色网页元素。

由于我有 n 种颜色类型,因此我不想在颜色方法中使用 if 条件。

请问如何使用字符串变量来标识相应的网络元素。 另外我不想将 webelement 声明为 public。

最佳答案

如果您要多次对 yellow 字段执行其他颜色的操作,并且需要通过 CSS 选择器查找它们,那么我建议您使用 Map,并且使用循环来查找它们。

private Map<String, WebElement> colors = new HashMap<>();
{
    final String[] COLOR_MAPS = {
            "#yel", "yellow",
            "#red", "red",
            "#grn", "green" };
    for (int i = 0; i < COLOR_MAPS.length; i += 2)
        colors.put(COLOR_MAPS[i + 1], Driver.findElement(By.cssSelector(COLOR_MAPS[i])));
}
public void color(String color) {
    WebElement elem = colors.get(color);
    if (elem == null)
        throw new IllegalArgumentException("Unknown color: " + color);
    ...
}

关于java - 如何在类中使用字符串作为变量传递字符串作为参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60964086/

相关文章:

java - 我应该怎么做才能让java输出XML?

c# - Java DecimalFormat 的 c# 等价物是什么?

java - 无法使用 java 在 selenium webdriver 中打印特定名称

ruby-on-rails - 无法连接到Geckodriver

java.lang.NoClassDefFoundError : org/openqa/selenium/remote/codec/w3c/W3CHttpCommandCodec

java - 如何使用聚合类将现有的 mongo db 查询转换为 Spring Boot

javascript - React 根据结果数量动态创建按钮

c# - Selenium - 异常 - 连接关闭

java - 在java中返回两个类的方法

java - 如何在不每次加载模拟器的情况下在 android 模拟器上运行测试?