Используйте функцию внутри браузера.execute_script() (Selenium, Python)

#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, и токен обычно работает нормально.