我正在使用robotframework进行UI测试,我的数据id是动态的,因此需要使用java脚本获取数据id,如下所示
function getID() {
var resultid = 'error';
var tables = document.querySelector("[id^='netinfo-node'][id$='body']").querySelectorAll("[class=x-grid-item-container]")[0].children;
console.info(tables);
var len = tables.length
for (var i = 0; i < len; i++) {
console.info(tables[i].rows[0].innerText)
tablelist = tables[i].rows[0].innerText.trim().split('\n')
// console.info(tablelist);
var newtablelist = []
for (var m=0;m<tablelist.length;m++){
if (tablelist[m]==" "){
continue
}else{
newtablelist.push(tablelist[m].trim())
}
}
var value = newtablelist[1]+newtablelist[2]
if (value == "vmx10111.0.0.101") {
resultid = tables[i].attributes[0].value;
return resultid;
}else {
continue
}
}
}
这段代码在控制台中运行良好。然而,当我用下面的代码在selenium中调用这个js代码时,我得到了错误:JavascriptException:Message:javascript错误:无效或意外的令牌
getDataID = """return (function getID() { var resultid = 'error'; var tables = document.querySelector("[id^='netinfo-node'][id$='body']").querySelectorAll("[class='x-grid-item-container']")[0].children;console.log(tables);var len = tables.length;for (var i = 0; i < len; i++) {tablelist = tables[i].rows[0].innerText.split('\n');console.log(tablelist);var newtablelist = [];for (var m=0;m<tablelist.length;m++){if (tablelist[m]==" "){continue}else{newtablelist.push(tablelist[m].trim());}};console.log(newtablelist[0]);console.log(newtablelist[1]);console.log(newtablelist[8]);var value = newtablelist[1]+newtablelist[2];if (value == \"""" + uniqueID + """\") {resultid = tables[i].attributes[0].value;return resultid;}else {continue}}})()"""
dataID = browser.execute_script(getDataID)
print("lsp id: ", dataID)
这应该是“\n”问题,但我不知道如何在python/selenium中转换它,有人能帮我吗,非常感谢
目前没有回答
相关问题 更多 >
编程相关推荐