在 browser.execute_script() 中使用函数(Selenium,Python)
Posted
技术标签:
【中文标题】在 browser.execute_script() 中使用函数(Selenium,Python)【英文标题】:Use a function inside browser.execute_script() (Selenium, Python) 【发布时间】:2021-12-08 12:15:05 【问题描述】:我正在尝试在控制台内使用带有 selenium python 的 javascript 代码,但我不知道如何。 这是函数:
function login(token)
setInterval(() =>
document.body
.appendChild(document.createElement `iframe`)
.contentWindow.localStorage.token = `"$token"`
, 50);
setTimeout(() =>
location.reload();
, 2500);
login(token);
我正在尝试使用 browser.execute_script() 中的函数,但我不知道如何添加它。
【问题讨论】:
【参考方案1】:您可以编写一个函数来创建脚本并将其作为字符串返回。然后,您可以在需要时调用driver.execute_script()
来运行脚本。
这应该可行:
def generate_login_script(token):
script = """
setInterval(()=>document.body.appendChild(document.createElement `iframe`)
.contentWindow.localStorage.token="token",50);
setTimeout(()=>location.reload(),2500);
""".format(token=token)
return script
driver = webdriver.Chrome("D:\chromedriver\94\chromedriver.exe")
driver.get("https://www.youwebsite.com")
driver.execute_script(generate_login_script("testToken"))
我已经在以 G.com 开头的著名搜索引擎上对此进行了测试,它确实有效。
【讨论】:
感谢您的回答,我在哪里输入令牌?我尝试将其放入“testToken”并重新加载页面,但我没有登录该帐户。我正在使用 chromedriver 版本 94,令牌通常可以正常工作。以上是关于在 browser.execute_script() 中使用函数(Selenium,Python)的主要内容,如果未能解决你的问题,请参考以下文章