我是JS的新手,面临着一个我找不到解决方案的问题.我正在编写一个脚本,以使用空手道/selenium自动执行"清理"过程.
脚本:
- 转到网页并搜索特定条件.
- 在填充的结果上,获取单个列中的所有值.然后在同一搜索框中,搜索从列中获取的每个值.
- 在结果中,单击Delete以获得填充的结果.
- 某些行将引发异常,在这种情况下,我们希望返回并try 列值数组中的下一项,直到所有项都被删除,或者剩下的项都是引发异常的项.
到目前为止,我有:
driver.input('#searchField', ['Mobile', Key.ENTER], 200); //here I am using Karate/Selenium to enter the search criteria on the UI.
function() {
var searchResult = false;
searchResult = driver.exists('//table//tr');
var errorPage = driver.exists('#exception');
do {
var deleteCriteria = driver.scriptAll('//table//tr//td[3]', '_.innerText'); //Here I am grabbing actual values I need to search by across the entire column and putting it in array form.
for (i = 0; i < deleteCriteria.length; i++) {
driver.input('#searchField', [deleteCriteria[i], Key.ENTER], 200);
driver.click('#deleteBtn');
driver.click('#deleteNumber');
driver.delay(10000);
if (errorPage) {
driver.back();
driver.delay(10000);
driver.back();
driver.delay(10000);
} else {
continue;
}
}
} while (searchResult);
}
问题:当显示异常页面时,IF块未启动.脚本无法try 找到要再次搜索的搜索框.请告知.
PS-我理解我的"while"还不正确.一旦问题解决了,我就把它修好.