java - 如何在将字符串作为参数传递的类中使用字符串作为变量
问题描述
在可重复使用的情况下,我使用了变量
WebElement yellow = Driver.findElement(By.cssSelector("#yel"))
public void color(String color) { //something
}
如果我调用以下方法,现在在我的主类中:
cls.color("yellow")
颜色方法应该使用黄色的webelement。
由于我有 n 种颜色类型,我不想if
在颜色方法中使用条件。
我可以知道如何使用字符串变量来识别相应的webelement。另外我不想将 webelement 声明为公共的。
解决方案
如果您要yellow
多次为该字段执行其他颜色的操作,并且需要通过 CSS 选择器查找它们,那么我建议您使用 a 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);
...
}
推荐阅读
- windows - 从 vb.net 向 windows 添加服务
- python - 在python中将大数据集转换为浮点数
- arrays - 从原始对象数组创建具有特定类型和键的对象数组
- java - 尝试比较资源中包含的与可绘制的图像按钮可绘制图像
- c# - MiniProfiler v4 对 .net 标准的依赖
- html - 如何在角度 cli 中将 css 样式从 ts 导入到 less?
- javascript - 通过javascript中的函数运行数组
- node.js - `continuation-local-storage` 在生产中使用是否安全
- ajax - Django中的长轮询-无法更新页面
- google-maps - 谷歌 API 客户端 ID 和静态地图键是否相同?