Получение значения "var" скрипта с помощью Selenium с Pyhton - PullRequest
0 голосов
/ 06 мая 2020
from selenium import webdriver

driver = webdriver.Chrome()
driver.get("url_goes_here")

p_id = driver.find_elements_by_tag_name("script")

Это дает мне нужный сценарий. Мне не нужно его выполнять, поскольку он уже выполняется и запускается при начальной загрузке страницы. Он содержит переменную с именем «задача». Как мне получить доступ к его значению с помощью Selenium?

Ответы [ 3 ]

1 голос
/ 06 мая 2020

Модуль регулярных выражений re может вам в этом помочь:

import re
from selenium import webdriver

driver = webdriver.Chrome()
driver.get("url_goes_here")

p_id = driver.find_elements_by_tag_name("script")

for script in p_id:
    innerHTML=script.get_property('innerHTML')
    task=re.search('var task = (.*);',innerHTML)
    if task is not None:
        print(task.group(1))

Он просматривает внутреннее HTML каждого скрипта и из определенного шаблона поиска ('var task = (.*);') , захватите соответствующую группу строк ((.*)). Если совпадение найдено, распечатайте группу.

0 голосов
/ 06 мая 2020

Поскольку вы используете find_elements_by_tag_name (), который возвращает список элементов. Итерируйте этот список и проверьте element.text содержит task, затем print text этого элемента.

p_id = driver.find_elements_by_tag_name("script")
for id in p_id:
    if 'task' in id.text:
        print(id.text)
0 голосов
/ 06 мая 2020

вы можете получить доступ к значению tag или любому element из html через .text или .getText()

...