Как мне использовать список python внутри кода javascript?

#javascript #python-3.x #selenium

#javascript #python-3.x #селен

Вопрос:

Как мне использовать список python внутри кода javascript?

 stream_id = 4000

# add stream sources list
a_file = open("C:/Users/Unknown/Documents/Selenium/stream_source.txt", "r")

stream_sources_list = []
for line in a_file:
  stripped_line = line.strip()
  stream_source_line_list = stripped_line.split()
  stream_sources_list.append(stream_source_line_list)

a_file.close()

print("stream_sources:", len(stream_sources_list))

    while listposition < len(stream_sources_list):

        # navigate
        driver.get("http://192.168.94.128:25500/stream.php?id={}".format(stream_id))

        driver.execute_script(f"document.getElementById('stream_source').setAttribute('value', '{stream_sources_list[listposition]}');")

        stream_id = stream_id   1
        listposition = listposition   1
  

это та часть, которая не работает: ‘{stream_sources_list[listposition]}’

 driver.execute_script(f"document.getElementById('stream_source').setAttribute('value', '{stream_sources_list[listposition]}');")
  

Комментарии:

1. Можете ли вы предоставить полную обратную трассировку для этой ошибки? И код, в котором вы на самом деле вызываете эту driver.execute_script() функцию? Похоже, что то, чем вы поделились, включает в себя только чтение элементов из файла в список, а затем печать длины этого списка.

2. по какой-то причине я не могу опубликовать полный код, в нем говорится, что ваш пост в основном состоит из кода, поэтому я попытался минимизировать код и перейти к тому, в чем проблема.

3. Возможно, если вы добавите немного слов, описывающих вашу проблему более подробно, вы сможете это сделать. Полная обратная трассировка облегчит понимание.

4. Что я пытаюсь сделать, у меня есть список, и внутри этого списка есть элементы, я перехожу по ссылке и вхожу в систему, затем появляются входные данные, и вместо ввода я устанавливаю значение каждого ввода с элементами списка там, это цикл, которыйбудет делать это для каждого элемента списка.

5. Должен быть этот код и трассировка. Этот текущий вопрос невозможно воспроизвести, неясно, какова фактическая ошибка без обратной трассировки, и если проблема заключается в том, как вы используете selenium , ее невозможно диагностировать, не видя написанный вами код.

Ответ №1:

Использовать node.js дочерний процесс child_process.spawn():

вот пример https://www.geeksforgeeks.org/run-python-script-node-js-using-child-process-spawn-method/#:~:text=Child Process allows us to,to spawn child process asynchronously.