How to use to_have_count method in Playwright Python

Best Python code snippet using playwright-python

test_locators.py

Source:test_locators.py Github

copy

Full Screen

...507 in_frame = page.frames[1].locator("div")508 assert in_frame.page == page509def test_locator_should_support_has_locator(page: Page, server: Server) -> None:510 page.set_content("<div><span>hello</span></div><div><span>world</span></div>")511 expect(page.locator("div", has=page.locator("text=world"))).to_have_count(1)512 assert (513 page.locator("div", has=page.locator("text=world")).evaluate("e => e.outerHTML")514 == "<div><span>world</span></div>"515 )516 expect(page.locator("div", has=page.locator('text="hello"'))).to_have_count(1)517 assert (518 page.locator("div", has=page.locator('text="hello"')).evaluate(519 "e => e.outerHTML"520 )521 == "<div><span>hello</span></div>"522 )523 expect(page.locator("div", has=page.locator("xpath=./span"))).to_have_count(2)524 expect(page.locator("div", has=page.locator("span"))).to_have_count(2)525 expect(page.locator("div", has=page.locator("span", has_text="wor"))).to_have_count(526 1527 )528 assert (529 page.locator("div", has=page.locator("span", has_text="wor")).evaluate(530 "e => e.outerHTML"531 )532 == "<div><span>world</span></div>"533 )534 expect(535 page.locator(536 "div",537 has=page.locator("span"),538 has_text="wor",539 )540 ).to_have_count(1)541def test_locator_should_enforce_same_frame_for_has_locator(542 page: Page, server: Server543) -> None:544 page.goto(server.PREFIX + "/frames/two-frames.html")545 child = page.frames[1]546 with pytest.raises(Error) as exc_info:547 page.locator("div", has=child.locator("span"))548 assert (549 'Inner "has" locator must belong to the same frame.' in exc_info.value.message...

Full Screen

Full Screen

_assertions.py

Source:_assertions.py Github

copy

Full Screen

...196 timeout: float = None,197 ) -> None:198 __tracebackhide__ = True199 await self._not.to_have_class(expected, timeout)200 async def to_have_count(201 self,202 count: int,203 timeout: float = None,204 ) -> None:205 __tracebackhide__ = True206 await self._expect_impl(207 "to.have.count",208 FrameExpectOptions(expectedNumber=count, timeout=timeout),209 count,210 "Locator expected to have count",211 )212 async def not_to_have_count(213 self,214 count: int,215 timeout: float = None,216 ) -> None:217 __tracebackhide__ = True218 await self._not.to_have_count(count, timeout)219 async def to_have_css(220 self,221 name: str,222 value: Union[str, Pattern],223 timeout: float = None,224 ) -> None:225 __tracebackhide__ = True226 expected_text = to_expected_text_values([value])227 await self._expect_impl(228 "to.have.css",229 FrameExpectOptions(230 expressionArg=name, expectedText=expected_text, timeout=timeout231 ),232 value,...

Full Screen

Full Screen

test_assertions.py

Source:test_assertions.py Github

copy

Full Screen

...96 expect(page.locator("div.foobar")).to_have_class([re.compile("foobar")])97 expect(page.locator("div.foobar")).not_to_have_class("kekstar", timeout=100)98 with pytest.raises(AssertionError):99 expect(page.locator("div.foobar")).to_have_class("oh-no", timeout=100)100def test_assertions_locator_to_have_count(page: Page, server: Server) -> None:101 page.goto(server.EMPTY_PAGE)102 page.set_content("<div class=foobar>kek</div><div class=foobar>kek</div>")103 expect(page.locator("div.foobar")).to_have_count(2)104 expect(page.locator("div.foobar")).not_to_have_count(42, timeout=100)105 with pytest.raises(AssertionError):106 expect(page.locator("div.foobar")).to_have_count(42, timeout=100)107def test_assertions_locator_to_have_css(page: Page, server: Server) -> None:108 page.goto(server.EMPTY_PAGE)109 page.set_content("<div class=foobar style='color: rgb(234, 74, 90);'>kek</div>")110 expect(page.locator("div.foobar")).to_have_css("color", "rgb(234, 74, 90)")111 expect(page.locator("div.foobar")).not_to_have_css(112 "color", "rgb(42, 42, 42)", timeout=100113 )114 with pytest.raises(AssertionError):115 expect(page.locator("div.foobar")).to_have_css(116 "color", "rgb(42, 42, 42)", timeout=100117 )118def test_assertions_locator_to_have_id(page: Page, server: Server) -> None:119 page.goto(server.EMPTY_PAGE)120 page.set_content("<div class=foobar id=kek>kek</div>")...

Full Screen

Full Screen

test_browser_user.py

Source:test_browser_user.py Github

copy

Full Screen

...95 page.click("text=Delete")96 assert page.url == f"{settings['BASE_URL']}/db/test"97 page.goto(table_url)98 locator = page.locator("text=No such table")99 playwright.sync_api.expect(locator).to_have_count(1)100 # Delete the database.101 page.once("dialog", lambda dialog: dialog.accept()) # Callback for next click.102 page.click("text=Delete")103 assert page.url == f"{settings['BASE_URL']}/dbs/owner/{settings['USER_USERNAME']}"104def test_table_csv(settings, page): # 'page' fixture from 'pytest-playwright'105 "Test login, creating a table, inserting data from a CSV file."106 login_user(settings, page)107 # Create a database 'test'.108 page.goto(f"{settings['BASE_URL']}/dbs/owner/{settings['USER_USERNAME']}")109 page.click("text=Create")110 assert page.url == f"{settings['BASE_URL']}/db/"111 page.click('input[name="name"]')112 page.fill('input[name="name"]', "test")113 page.click('button:has-text("Create")')114 assert page.url == f"{settings['BASE_URL']}/db/test"115 # Create a table 't1'.116 page.click("text=Create table")117 assert page.url == f"{settings['BASE_URL']}/table/test"118 page.click('input[name="name"]')119 page.fill('input[name="name"]', "t1")120 page.click('input[name="column0name"]')121 page.fill('input[name="column0name"]', "i")122 page.check("#column0primarykey")123 page.click('input[name="column1name"]')124 page.fill('input[name="column1name"]', "r")125 page.select_option('select[name="column1type"]', "REAL")126 page.click('input[name="column2name"]')127 page.fill('input[name="column2name"]', "j")128 page.click('input[name="column3name"]')129 page.fill('input[name="column3name"]', "t")130 page.select_option('select[name="column3type"]', "TEXT")131 page.check('input[name="column3notnull"]')132 page.click('button:has-text("Create")')133 assert page.url == f"{settings['BASE_URL']}/table/test/t1"134 # Insert data from file.135 page.click("text=Insert from file")136 assert page.url == "http://localhost:5001/table/test/t1/insert"137 with page.expect_file_chooser() as fc_info:138 page.click('input[name="csvfile"]')139 file_chooser = fc_info.value140 file_chooser.set_files("test.csv")141 page.click("text=Insert from CSV file")142 assert page.url == "http://localhost:5001/table/test/t1"143 page.click("text=Database test")144 assert page.url == f"{settings['BASE_URL']}/db/test"145 # Query the database.146 page.click("text=Query")147 assert page.url == "http://localhost:5001/query/test"148 page.click('textarea[name="select"]')149 page.fill('textarea[name="select"]', "i,r")150 page.click('textarea[name="from"]')151 page.fill('textarea[name="from"]', "t1")152 page.click('textarea[name="where"]')153 page.fill('textarea[name="where"]', 't = "blah"')154 page.click("text=Execute query")155 assert page.url == "http://localhost:5001/query/test/rows"156 assert page.locator("#nrows").text_content() == "1"157 locator = page.locator("#rows > tbody > tr")158 playwright.sync_api.expect(locator).to_have_count(1)159 # Modify the query.160 page.click("text=Edit query")161 assert page.url.startswith("http://localhost:5001/query/test")162 page.click('textarea[name="where"]')163 page.fill('textarea[name="where"]', "j = 3")164 page.click("text=Execute query")165 assert page.url == "http://localhost:5001/query/test/rows"166 assert page.locator("#nrows").text_content() == "2"167 locator = page.locator("#rows > tbody > tr")168 playwright.sync_api.expect(locator).to_have_count(2)169 # Delete the database.170 page.click("text=Database test")171 assert page.url == "http://localhost:5001/db/test"172 page.once("dialog", lambda dialog: dialog.accept()) # Callback for next click.173 page.click("text=Delete")174 assert page.url == f"{settings['BASE_URL']}/dbs/owner/{settings['USER_USERNAME']}"175def test_db_upload(settings, page):176 "Test uploading a Sqlite3 database file."177 login_user(settings, page)178 # Upload database file.179 page.goto(f"{settings['BASE_URL']}/dbs/owner/{settings['USER_USERNAME']}")180 page.click("text=Upload")181 assert page.url == "http://localhost:5001/dbs/upload"182 page.once("filechooser", lambda fc: fc.set_files("test.sqlite3"))183 page.click('input[name="sqlite3file"]')184 page.click("text=Upload SQLite3 file")185 assert page.url == "http://localhost:5001/db/test"186 page.click("text=3 rows")187 assert page.url == "http://localhost:5001/table/test/t1"188 locator = page.locator("#rows > tbody > tr")189 playwright.sync_api.expect(locator).to_have_count(3)190 page.click('a[role="button"]:has-text("Schema")')191 assert page.url == "http://localhost:5001/table/test/t1/schema"192 locator = page.locator("#columns > tbody > tr")193 playwright.sync_api.expect(locator).to_have_count(7)194 # Delete the database.195 page.click("text=Database test")196 assert page.url == "http://localhost:5001/db/test"197 page.once("dialog", lambda dialog: dialog.accept()) # Callback for next click.198 page.click("text=Delete")199 assert page.url == f"{settings['BASE_URL']}/dbs/owner/{settings['USER_USERNAME']}"200def test_view(settings, page):201 "Test view creation, based on a table in an uploaded Sqlite3 database file."202 login_user(settings, page)203 # Upload database file.204 page.goto(f"{settings['BASE_URL']}/dbs/owner/{settings['USER_USERNAME']}")205 page.click("text=Upload")206 assert page.url == "http://localhost:5001/dbs/upload"207 page.once("filechooser", lambda fc: fc.set_files("test.sqlite3"))208 page.click('input[name="sqlite3file"]')209 page.click("text=Upload SQLite3 file")210 assert page.url == "http://localhost:5001/db/test"211 # Create the view.212 page.click("text=Query")213 assert page.url == "http://localhost:5001/query/test"214 page.click('textarea[name="select"]')215 page.fill('textarea[name="select"]', "i, r1")216 page.click('textarea[name="from"]')217 page.fill('textarea[name="from"]', "t1")218 page.click('textarea[name="where"]')219 page.fill('textarea[name="where"]', "i2 < 0")220 page.click("text=Execute query")221 assert page.url == "http://localhost:5001/query/test/rows"222 page.click("text=Create view")223 page.click('input[name="name"]')224 page.fill('input[name="name"]', "v1")225 page.click('button:has-text("Create")')226 page.wait_for_timeout(3000)227 locator = page.locator("#rows > tbody > tr")228 playwright.sync_api.expect(locator).to_have_count(2)229 # Delete the database.230 page.click("text=Database test")231 assert page.url == "http://localhost:5001/db/test"232 page.once("dialog", lambda dialog: dialog.accept()) # Callback for next click.233 page.click("text=Delete")234 assert page.url == f"{settings['BASE_URL']}/dbs/owner/{settings['USER_USERNAME']}"...

Full Screen

Full Screen

Playwright tutorial

LambdaTest’s Playwright tutorial will give you a broader idea about the Playwright automation framework, its unique features, and use cases with examples to exceed your understanding of Playwright testing. This tutorial will give A to Z guidance, from installing the Playwright framework to some best practices and advanced concepts.

Chapters:

  1. What is Playwright : Playwright is comparatively new but has gained good popularity. Get to know some history of the Playwright with some interesting facts connected with it.
  2. How To Install Playwright : Learn in detail about what basic configuration and dependencies are required for installing Playwright and run a test. Get a step-by-step direction for installing the Playwright automation framework.
  3. Playwright Futuristic Features: Launched in 2020, Playwright gained huge popularity quickly because of some obliging features such as Playwright Test Generator and Inspector, Playwright Reporter, Playwright auto-waiting mechanism and etc. Read up on those features to master Playwright testing.
  4. What is Component Testing: Component testing in Playwright is a unique feature that allows a tester to test a single component of a web application without integrating them with other elements. Learn how to perform Component testing on the Playwright automation framework.
  5. Inputs And Buttons In Playwright: Every website has Input boxes and buttons; learn about testing inputs and buttons with different scenarios and examples.
  6. Functions and Selectors in Playwright: Learn how to launch the Chromium browser with Playwright. Also, gain a better understanding of some important functions like “BrowserContext,” which allows you to run multiple browser sessions, and “newPage” which interacts with a page.
  7. Handling Alerts and Dropdowns in Playwright : Playwright interact with different types of alerts and pop-ups, such as simple, confirmation, and prompt, and different types of dropdowns, such as single selector and multi-selector get your hands-on with handling alerts and dropdown in Playright testing.
  8. Playwright vs Puppeteer: Get to know about the difference between two testing frameworks and how they are different than one another, which browsers they support, and what features they provide.
  9. Run Playwright Tests on LambdaTest: Playwright testing with LambdaTest leverages test performance to the utmost. You can run multiple Playwright tests in Parallel with the LammbdaTest test cloud. Get a step-by-step guide to run your Playwright test on the LambdaTest platform.
  10. Playwright Python Tutorial: Playwright automation framework support all major languages such as Python, JavaScript, TypeScript, .NET and etc. However, there are various advantages to Python end-to-end testing with Playwright because of its versatile utility. Get the hang of Playwright python testing with this chapter.
  11. Playwright End To End Testing Tutorial: Get your hands on with Playwright end-to-end testing and learn to use some exciting features such as TraceViewer, Debugging, Networking, Component testing, Visual testing, and many more.
  12. Playwright Video Tutorial: Watch the video tutorials on Playwright testing from experts and get a consecutive in-depth explanation of Playwright automation testing.

Run Playwright Python automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful