1
我想要做的是有一個功能,我可以使用它來執行從元素中抓取文本的相同作業,但我想更改要從中拉取文本的定位器在不使用eval的情況下更改元素參考
const firstNameError = by.id('firstNameError');
const lastNameError = by.id('lastNameError');
const dateError = by.id('dateError');
const emailError = by.id('emailAddressError');
this.checkWarning = function(locator) {
return browser.findElement(eval(locator + 'Error')).getText();
};
所以上面,目前的作品,但使用eval函數(我寧願避免)。所以我調用.checkWarning並傳入'firstName',例如它會使用firstNameError const。
我曾嘗試推行之類的東西下面,我有定位器的列表,然後我還基於定位器如
const locatorValues =
{
'firstName': 'firstNameError',
'lastName': 'lastNameError',
'date': 'dateError',
'email': 'emailError',
};
this.checkWarning = function(locator) {
return browser.findElement(locatorValues[locator]).getText();
};
但是再次得到那個工作我會ammended訪問列表功能必須在它周圍包裝eval。我們是基於定位器引用我的常量的最佳方法,我會傳入.checkWarning?
感謝
你可以嘗試找到'窗口[localtor + '錯誤']'(或如果你不在瀏覽器上,使用'global'而不是'window') – Arthur
看起來'const'不在'window'上。我錯了 – Arthur