鱼C论坛

 找回密码
 立即注册
查看: 2806|回复: 2

[已解决]playwright 里, 得到的page.url 不是实时的,怎么办?

[复制链接]
发表于 2023-4-3 11:25:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 blackantt 于 2023-4-3 11:26 编辑

print(page.url)           #当前link是 link1
upload 数据
time.sleep(100)
print(page.url)           #当前link是 link2
close

upload之后,得等真正上传完。所以用 time.sleep(100)估算时间才能close.  (上传完成后url就跳转成原始link了)
想用判断 url 的方式来判断上传是否完成。但 得到的page.url 不是实时的,怎么办?
while True:
    if page.url == url_upload前:
        break
最佳答案
2023-4-3 11:28:24
你可以使用 Playwright 的 waitForNavigation 方法来实现你的需求。

这个方法会等待页面导航完成,然后返回结果。通过这种方法,你可以确保在关闭页面之前,页面已经成功跳转到了新的URL。

以下是一个例子:
from playwright.sync_api import sync_playwright

def run(playwright):
    browser = playwright.chromium.launch()
    context = browser.new_context()
    page = context.new_page()

    # 访问 link1
    page.goto("link1")
    print(page.url)  # 输出 link1

    # 上传数据
    # ... (在此处执行上传操作)

    # 等待页面导航完成
    page.wait_for_navigation()

    # 检查 URL 是否已更新
    print(page.url)  # 输出 link2

    # 关闭页面和浏览器
    page.close()
    browser.close()

with sync_playwright() as p:
    run(p)
在这个例子中,我们在上传数据后使用 page.wait_for_navigation() 方法来等待页面导航完成。这样,在关闭页面之前,我们可以确保页面已经成功跳转到了新的URL。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-4-3 11:28:24 | 显示全部楼层    本楼为最佳答案   
你可以使用 Playwright 的 waitForNavigation 方法来实现你的需求。

这个方法会等待页面导航完成,然后返回结果。通过这种方法,你可以确保在关闭页面之前,页面已经成功跳转到了新的URL。

以下是一个例子:
from playwright.sync_api import sync_playwright

def run(playwright):
    browser = playwright.chromium.launch()
    context = browser.new_context()
    page = context.new_page()

    # 访问 link1
    page.goto("link1")
    print(page.url)  # 输出 link1

    # 上传数据
    # ... (在此处执行上传操作)

    # 等待页面导航完成
    page.wait_for_navigation()

    # 检查 URL 是否已更新
    print(page.url)  # 输出 link2

    # 关闭页面和浏览器
    page.close()
    browser.close()

with sync_playwright() as p:
    run(p)
在这个例子中,我们在上传数据后使用 page.wait_for_navigation() 方法来等待页面导航完成。这样,在关闭页面之前,我们可以确保页面已经成功跳转到了新的URL。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-4-3 11:36:31 | 显示全部楼层
isdkz 发表于 2023-4-3 11:28
你可以使用 Playwright 的 waitForNavigation 方法来实现你的需求。

这个方法会等待页面导航完成,然后 ...

太好了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-24 01:15

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表