RobotFramework Python Получает текст из функции javascript

#python #css #selenium #robotframework

#python #css #селен #robotframework

Вопрос:

Приведенный ниже текст предупреждения внутри вставленной функции появляется только при нажатии кнопки. Я хочу захватить текст для его проверки.

Когда я использую следующий код, я могу найти локатор на странице, но в моем ответе текст не возвращается. Как я могу попасть внутрь функции?

 ${response}    Get Text    css=body script:nth-child(9)

(script)
        $(function () {
            Metro.toast.create("No changes have been entered so 
                   nothing will be updated in CMS!", null, 6000, "alert");
        });
 (/script)     
  

Ответ приходит как передача, но без текста.

15:49:17.350 INFO ${response} =

Ответ №1:

Get Text в Selenium / SeleniumLibrary возвращает видимый текст в теге — например, то, что браузер отображает в окне просмотра. Естественно, все, что есть в a <script> , это не так — это код, который будет выполнен (независимо от того, что он будет делать — помещать туда какой-то текст или нет, это код).

Однако вы все равно можете получить содержимое тега — у каждого элемента DOM есть атрибут innerHTML , то есть его необработанное содержимое (до рендеринга и так далее). Итак, попробуйте это:

 ${response}    Get Element Attribute   css=body script:nth-child(9)    innerHTML
  

Это, конечно, вернет вам все (потому что ответ — это необработанное содержимое) — "Metro.toast.create(" , и т. Д. — Поэтому вам придется немного манипулировать выводом, чтобы получить только аргумент метода.