为什么在 Uber Eats 优食上点击按钮后 Playwright 不会更改网址?

问题描述 投票:0回答:2

本质上,我想在 uber eats 中输入一个地址,然后进入下一页。然而,我注意到,一旦单击按钮,网址实际上并没有改变。

from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch()
    page = browser.new_page()
    page.goto("https://www.ubereats.com/ca")
    print(page.title())
    page.fill("#location-typeahead-home-input", "address")
    page.keyboard.press("Enter")
    print(page.url)
    page.close()

我尝试通过专门针对登陆页面上的“查找食物”按钮来执行相同的操作。由于某种原因,这实际上并没有改变页面。 帮助将不胜感激,谢谢!

python web-scraping automation playwright
2个回答
1
投票

我在 Node js puppeteer 中提出了一个解决方案,我认为它在 python 中的工作方式相同。至于为什么按钮没有被按下,我不知道。但是,有效的方法是输入地址,然后单击第一个地址建议。

这是我的代码:

const puppeteer = require('puppeteer');
async function start(){
    const browser = await puppeteer.launch()
    const page = await browser.newPage()
    await page.goto("https://www.ubereats.com/ca")
    await page.type("#location-typeahead-home-input", "Address")
    await page.waitForSelector('#location-typeahead-home-item-0');
    await page.click("#location-typeahead-home-item-0")
    await page.waitForNavigation()

    console.log(page.url())
    await browser.close()
}

start()


1
投票

页面上有一个错误,如果您输入地址太快并在对话框出现之前按 Enter,它将无法导航。请参阅此评论

© www.soinside.com 2019 - 2024. All rights reserved.