#javascript #python #selenium #discord #local-storage
Вопрос:
Я пытаюсь использовать код javascript внутри консоли с помощью selenium python, но я не знаю, как это сделать. Это и есть функция:
function login(token) { setInterval(() =gt; { document.body .appendChild(document.createElement `iframe`) .contentWindow.localStorage.token = `"${token}"` }, 50); setTimeout(() =gt; { location.reload(); }, 2500); } login(token);
Я действительно использую функцию внутри browser.execute_script (), но я не знаю, как ее добавить.
Ответ №1:
Вы можете написать функцию, которая создает сценарий и возвращает его в виде строки. Затем вы можете позвонить driver.execute_script()
, чтобы запустить сценарий, когда это необходимо.
Это должно сработать:
def generate_login_script(token): script = """ setInterval(()=gt;{{document.body.appendChild(document.createElement `iframe`) .contentWindow.localStorage.token="{token}"}},50); setTimeout(()=gt;{{location.reload()}},2500); """.format(token=token) return script driver = webdriver.Chrome("D:chromedriver94chromedriver.exe") driver.get("https://www.youwebsite.com") driver.execute_script(generate_login_script("testToken"))
Я проверил это на thefamoussearchenginethatstartswithG.com и это работает.
Комментарии:
1. Спасибо за ответ, где мне ввести токен? Я попытался вставить его в «testToken», и страница перезагрузилась, но я не вошел в учетную запись. Я использую chromedriver версии 94, и токен обычно работает нормально.