我正在尝试使用F5键刷新网页。我知道我可以使用:
self.page.reload()
但这不是解决我问题的好办法。如何使用F5
键刷新页面?我的代码无法刷新页面,我不知道为什么。
self.page.keyboard.press('F5')
afaik,player使用虚拟键盘,并且不会向浏览器应用程序发送与实际键盘完全相同的信号。
考虑使用本机,并使用更接近内核的东西,如pyautogui
,在您专注于窗口之后:
import pyautogui
pyautogui.press('f5')
正如您所说,我们有page.keyboard.press('F5')
。但它并没有达到你想要的效果,我试过其他几个例子,但都没有。
也许这对你来说已经足够了?
page.evaluate('window.location.reload();')
或
page.evaluate('location.reload();')
正如您所看到的,我们通过评估一个javascript来强制重新加载。
是的。。。这有点棘手,所以在那之后你可能甚至需要强制使用time.sleep(2)
,相信我,我讨厌time.sleep()
,但这是一种特殊的情况。
我希望它能有所帮助。
通过注入如下延迟参数,尝试让它像人类一样慢一点:
self.page.keyboard.press('F5',delay=100)
更新
keyboard.press('F5' with page.reload()
方法确实在刷新浏览过的页面。你可以试试它是否有效。
你可以证明以下真实的例子:
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch(headless=False,slow_mo=1000)
context = browser.new_context(viewport={"width": 1920, "height": 1080})
page = context.new_page()
page.goto('https://workspace.google.com/marketplace/search/word')
page.keyboard.press('F5',delay=1000)
page.reload()
剧作家python doc