Я пытаюсь избежать использования переключателя для проверки локатора, а затем создания элемента.
Вот так выглядит мой код:
switch (name.by) {
case "class":
return element(by.className(name.value));
case "cssselector":
return element(by.cssSelector(name.value));
case "id":
return element(by.id(name.value));
case "linktext":
return element(by.linkText(name.value));
case "name":
return element(by.name(name.value));
case "partiallinktext":
return element(by.partialLinkText(name.value));
case "tagname":
return element(by.tagName(name.value));;
case "xpath":
return element(by.xpath(name.value));;
default:
throw new Error ('Invalid option.');
}
Он получает в качестве параметра структуру json, подобную этой:
"rangeFrom": {
"by": "id",
"value": "txtRentFrom"
},
Я ищу что-то вроде:
element(by[name.by](name.value));
Кто-нибудь знает, есть ли способ избежать использования switch-case?