本质上,我想在 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()
我尝试通过专门针对登陆页面上的“查找食物”按钮来执行相同的操作。由于某种原因,这实际上并没有改变页面。 帮助将不胜感激,谢谢!
我在 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()
页面上有一个错误,如果您输入地址太快并在对话框出现之前按 Enter,它将无法导航。请参阅此评论。