#python #selenium-webdriver
Вопрос:
Я пытаюсь использовать значение из python внутри javascript, которое выполняется в этом скрипте python. Я пробовал с форматированием, везде искал на SO, но безуспешно. Надеюсь, кто-нибудь захочет мне помочь.
В основном я пытаюсь заменить слова на веб-странице ссылками вокруг этих слов (например, «google» на » Эти слова и ссылки взяты из csv, который считывается с помощью python, а затем используется в качестве vars внутри исполнителя javascript (поиск по var = «переменная из csv»). И вот тут я застрял, так как не могу заставить эти переменные python использоваться внутри javascript «var». Надеюсь, я говорю разумно.
Вот код:
js = """var search = "google" # this works
var search = "{}";.format(mystring) # but this doesn't
var replacement = "{}";.format(mylink)
var replacementTag = '" replacement "' target='_blank'>" search "</a>";
document.body.innerHTML = document.body.innerHTML.split(search).join(replacementTag);
"""
driver.execute_script(js)
Спасибо!
Комментарии:
1. вам нужно
.format
позвонить после закрытия"""
2. Спасибо, но я пробовал, и это не работает. Может быть, есть еще какие-нибудь идеи?
3. Можете ли вы показать, что вы пробовали, и объяснить, как это «не работает»?
4. Я пытаюсь заменить ссылки в DOM своими собственными, основанными на поисковых словах. Для этого я хотел бы отправить переменные из python в javascript (var = «замененная ссылка»), но не могу отправить их, что бы я ни делал. Любая помощь приветствуется 🙂
5. Я имею в виду, пожалуйста, отредактируйте свой вопрос, чтобы показать вашу попытку, которая стоит
.format
после строки, чтобы я (и другие!) могли видеть, что с ней не так. Ваш исходный код, который.format
находится внутри строкового литерала, не сильно помогает в этом. И покажите нам, каков фактически созданный код javascript, если это неверно (вы всегда можетеprint(js)
увидеть!)