Во время выполнения скрипта Python, использующего Selenium и Chrome-driver, возникла особая проблема, когда драйвер выполняет сегмент скрипта Java, а затем возвращает:
Message: unknown error: Cannot read property 'innerHTML' of undefined
Это сегмент:
function getCommand() {
var MSGNUM = document.getElementsByClassName("ChatBox").length -1;
var MSG = document.getElementsByClassName("message-body")[MSGNUM];
MSG = MSG.innerHTML;
var NAME = document.getElementsByClassName("username")[MSGNUM];
NAME = NAME.innerHTML;
var COMMAND = (NAME+" "+MSG);
return(COMMAND);
}
return getCommand(); //To return the statement back to a python varible
<div class="ChatBox" style="display: block;">
<div class="Wrapper">
<div class="username">Chuck Norris</div>
<div class="message-body">Goodmorning</div>
</div>
</div>
И код Python, выполняющий его
message = driver.execute_script(""" function getCommand() {
var MSGNUM = document.getElementsByClassName("ChatBox").length -1;
var MSG = document.getElementsByClassName("message-body")[MSGNUM];
MSG = MSG.innerHTML;
var NAME = document.getElementsByClassName("username")[MSGNUM];
NAME = NAME.innerHTML;
var COMMAND = (NAME+" "+MSG);
return(COMMAND);
}
returngetCommand()""");
Сценарий java работает без ошибок при выполнении в командной строке google chrome, без оператора недопустимого возврата. Обновление chromedriver и selenium, похоже, не решает проблему.