#javascript #html #python-3.x
#javascript #HTML #python-3.x
Вопрос:
Я пытаюсь отобразить error message on HTML page
.
Сообщение об ошибке представляет собой комбинацию HTML / Javascript, как показано ниже.
WebDriverException: Message: unknown error: Element
<div id="sidebar_item_Reports" style="height: 18px; white-space:nowrap;" onclick="
if (window.Event amp;amp;amp;amp; Event.stopProp)
Event.stopProp(event);
" onmousedown="
if(Global.Central!=null) {
Global.Central.SelectItem('Reports',event);}
" class="sidebar_item sidebar_item_selected listItemSelected_fill skinGradient">...</div> is not clickable at point (105, 67). Other element would receive the click: <div class="overlay_concerto" style="position: absolute; height: 100%; width: 100%; left: 0px; top: 0px; z-index: 10;"></div>
(Session info: chrome=61.0.3163.100)
(Driver info: chromedriver=2.30.477700 (0057494ad8732195794a7b32078424f92a5fce41),platform=Windows NT 6.1.7601 SP1 x86_64)
Поскольку я встраиваю то же самое, t считается объектами HTML.
- Как я могу отобразить точное сообщение об ошибке (как показано выше, вместе с тегами) на HTML-странице?
- Я пытаюсь сделать это с помощью python. Какие-либо модули python доступны для этого?
<plaintext>
похоже, не работает с последними версиями HTML. Пробовал <pre> and <code>
также теги.
Код:
var = """WebDriverException: Message: unknown error: Element
<div id="sidebar_item_Reports" style="height: 18px; white-space:nowrap;" onclick="
if (window.Event amp;amp;amp;amp; Event.stopProp)
Event.stopProp(event);
" onmousedown="
if(Global.Central!=null) {
Global.Central.SelectItem('Reports',event);}
" class="sidebar_item sidebar_item_selected listItemSelected_fill skinGradient">...</div> is not clickable at point (105, 67). Other element would receive the click: <div class="overlay_concerto" style="position: absolute; height: 100%; width: 100%; left: 0px; top: 0px; z-index: 10;"></div>
(Session info: chrome=61.0.3163.100)
(Driver info: chromedriver=2.30.477700 (0057494ad8732195794a7b32078424f92a5fce41),platform=Windows NT 6.1.7601 SP1 x86_64)"""
file_handler = open("test.html, "w")
file_handler.write("<!DOCTYPE html><html><head><body>" var "</body></head></html>")
Вывод на HTML-странице:
WebDriverException: Message: unknown error: Element
...
is not clickable at point (105, 67). Other element would receive the click: (Session info: chrome=61.0.3163.100) (Driver info: chromedriver=2.30.477700 (0057494ad8732195794a7b32078424f92a5fce41),platform=Windows NT 6.1.7601 SP1 x86_64)
Возможно ли это? Может кто-нибудь, пожалуйста, помочь мне здесь?
Комментарии:
1. Я думаю, вам следует просто преобразовать всю ошибку в строку, используя error.toString() или String(error), а затем передать ее как внутренний html некоторого div
2. @Irfanwani: вся ошибка имеет тип ‘str’
3. Попробуйте. Теперь он будет привязан
4. @Irfanwani Нет, это не сработало. Это то же самое, что указано в приведенном выше выводе. Приведенный выше код делает то же самое, что вы упомянули.
5. Это возможно. Это случилось со мной однажды, но это было по ошибке. Вот почему я не помню, как это сделать. Но это возможно
Ответ №1:
let st = `WebDriverException: Message: unknown error: Element <div id="sidebar_item_Reports" style="height: 18px; white-space:nowrap;" onclick="if (window.Event amp;amp;amp;amp; Event.stopProp)Event.stopProp(event);" onmousedown="if(Global.Central!=null) {Global.Central.SelectItem('Reports',event);}" class="sidebar_item sidebar_item_selected listItemSelected_fill skinGradient">...</div> is not clickable at point (105, 67). Other element would receive the click: <div class="overlay_concerto" style="position: absolute; height: 100%; width: 100%; left: 0px; top: 0px; z-index: 10;"></div>(Session info: chrome=61.0.3163.100)(Driver info: chromedriver=2.30.477700 (0057494ad8732195794a7b32078424f92a5fce41),platform=Windows NT 6.1.7601 SP1 x86_64)`
let newStr = st.replace('<', 'amp;<');
let latest = newStr.replace('>', 'amp;>');
document.getElementById('d').innerHTML = latest;
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div id='d'>
</div>
</body>
</html>
ОБЪЯСНЕНИЕ:
В html, если мы хотим напечатать имя тега внутри страницы (такое же, как ваше условие), нам нужно заменить угловые скобки на amp;<
(for <
) и amp;>
(for >
) .
Итак, в вашей проблеме, поскольку мы не можем сделать это вручную, потому что это сообщение об ошибке, а не какой-то рукописный код. Итак, я использовал javascript для связи <
с amp;<
и >
amp;>
с.
Комментарии:
1. Спасибо, Ирфан. Содержит ли документ все это сообщение об ошибке? Не могли бы вы объяснить? Я знаком с python.
2. Понял, что концепция замены. Как насчет document.getElementById(‘d’).innerHTML = latest; ? Что он делает здесь? Можем ли мы сделать это аналогичным образом на python?
3. Я просто заменил, как вы упомянули выше, это сработало для меня. Большое вам спасибо, Ирфан.
4. На самом деле это просто происходит во внешнем интерфейсе. Я не думаю, что вам нужен python здесь. но если вы получаете ошибку в серверной части, вы можете передать это в шаблон и сделать то же самое, что указано в ответе.
5. document.getElementById(‘d’).innerHTML = latest; возвращает элемент с id = ‘d’, который здесь является div, и я устанавливаю его внутренний html равным последнему, который является новой созданной строкой.