In order to fill an input field using the pyppeteer library, you can use page.evaluate()
.
If you have an <input>
element like
<input name="myinput" id="myinput" type="text">
you can use
content = "My content" # This will be filled into <input id="myinput"> ! await page.evaluate(f"""() => {{ document.getElementById('myinput').value = '{content}'; }}""")
Note that page.evaluate()
will just run any Javascript code you give it, so you can put your Javascript skills to use in order to manipulate the page.
Full example
This example will open https://techoverflow.net, enter a search term into the search field and then create a screenshot
#!/usr/bin/env python3 import asyncio from pyppeteer import launch async def main(): browser = await launch() page = await browser.newPage() await page.goto('https://techoverflow.net') # This example fills content into the search field content = "My search term" await page.evaluate(f"""() => {{ document.getElementById('s').value = '{content}'; }}""") # Make screenshot await page.screenshot({'path': 'screenshot.png'}) await browser.close() asyncio.get_event_loop().run_until_complete(main())
The result will look like this: