1212# See the License for the specific language governing permissions and
1313# limitations under the License.
1414
15- import asyncio
15+ from playwright import chromium
1616
17- from playwright import browser_types
1817
18+ def main () -> None :
19+ browser = chromium .launch (headless = False )
20+ page = browser .newPage (viewport = 0 )
21+ page .setContent (
22+ "<button id=button onclick=\" window.open('http://webkit.org', '_blank')\" >Click me</input>"
23+ )
24+
25+ with page .expect_event ("popup" ) as popup :
26+ page .click ("#button" )
27+ print (popup .value )
1928
20- async def run () -> None :
21- print ("Launching browser..." )
22- browser = await browser_types ["webkit" ].launch (headless = False )
2329 print ("Contexts in browser: %d" % len (browser .contexts ))
2430 print ("Creating context..." )
25- context = await browser .newContext (viewport = None )
31+ context = browser .newContext (viewport = 0 )
2632 print ("Contexts in browser: %d" % len (browser .contexts ))
2733 print ("Pages in context: %d" % len (context .pages ))
2834
2935 print ("\n Creating page1..." )
30- page1 = await context .newPage ()
36+ page1 = context .newPage ()
3137 print ("Pages in context: %d" % len (context .pages ))
3238 page1 .on ("framenavigated" , lambda frame : print ("Frame navigated to %s" % frame .url ))
3339 page1 .on ("request" , lambda request : print ("Request %s" % request .url ))
@@ -42,42 +48,43 @@ async def run() -> None:
4248 ),
4349 )
4450 print ("Navigating page1 to https://example.com..." )
45- await page1 .goto ("https://example.com" )
51+ page1 .goto ("https://example.com" )
4652 print ("Page1 main frame url: %s" % page1 .mainFrame .url )
47- print ("Page1 tile: %s" % await page1 .title ())
53+ print ("Page1 tile: %s" % page1 .title ())
4854 print ("Frames in page1: %d" % len (page1 .frames ))
49- await page1 .screenshot (path = "example.png" )
55+ page1 .screenshot (path = "example.png" )
5056
5157 print ("\n Creating page2..." )
52- page2 = await context .newPage ()
58+ page2 = context .newPage ()
5359 page2 .on ("framenavigated" , lambda frame : print ("Frame navigated to %s" % frame .url ))
5460
5561 print ("Navigating page2 to https://webkit.org..." )
56- await page2 .goto ("https://webkit.org" )
57- print ("Page2 tile: %s" % await page2 .title ())
62+ page2 .goto ("https://webkit.org" )
63+ print ("Page2 tile: %s" % page2 .title ())
5864 print ("Pages in context: %d" % len (context .pages ))
5965
6066 print ("\n Querying body..." )
61- body1 = await page1 .querySelector ("body" )
67+ body1 = page1 .querySelector ("body" )
6268 assert body1
63- print ("Body text %s" % await body1 .textContent ())
69+ print ("Body text %s" % body1 .textContent ())
6470
6571 print ("Closing page1..." )
66- await page1 .close ()
72+ page1 .close ()
6773 print ("Pages in context: %d" % len (context .pages ))
6874
6975 print ("Navigating page2 to https://cnn.com..." )
70- await page2 .goto ("https://cnn.com" )
76+ page2 .goto ("https://cnn.com" )
7177 print ("Page2 main frame url: %s" % page2 .mainFrame .url )
72- print ("Page2 tile: %s" % await page2 .title ())
78+ print ("Page2 tile: %s" % page2 .title ())
7379 print ("Frames in page2: %d" % len (page2 .frames ))
7480 print ("Pages in context: %d" % len (context .pages ))
7581
7682 print ("Closing context..." )
77- await context .close ()
83+ context .close ()
7884 print ("Contexts in browser: %d" % len (browser .contexts ))
7985 print ("Closing browser" )
80- await browser .close ()
86+ browser .close ()
8187
8288
83- asyncio .get_event_loop ().run_until_complete (run ())
89+ if __name__ == "__main__" :
90+ main ()
0 commit comments