diff --git a/playwright-java/src/test/java/com/browserstack/PlaywrightLocalTest.java b/playwright-java/src/test/java/com/browserstack/PlaywrightLocalTest.java index 1ed944d..22ff3eb 100644 --- a/playwright-java/src/test/java/com/browserstack/PlaywrightLocalTest.java +++ b/playwright-java/src/test/java/com/browserstack/PlaywrightLocalTest.java @@ -24,14 +24,10 @@ public static void main(String[] args) { Browser browser = chromium.connect(ws_endpoint); Page page = browser.newPage(); try { - page.navigate("https://www.google.co.in/"); - Locator locator = page.locator("[aria-label='Search']"); - locator.click(); - page.fill("[aria-label='Search']", "BrowserStack"); - page.locator("[aria-label='Google Search'] >> nth=0").click(); + page.navigate("http://localhost:45454"); String title = page.title(); - if (title.equals("BrowserStack - Google Search")) { + if (title.equals("BrowserStack Local")) { // following line of code is responsible for marking the status of the test on BrowserStack as 'passed'. You can use this code in your after hook after each test markTestStatus("passed", "Title matched", page); } else { diff --git a/playwright-java/src/test/java/com/browserstack/PlaywrightLocalUsingBindingsTest.java b/playwright-java/src/test/java/com/browserstack/PlaywrightLocalUsingBindingsTest.java index 4b313fc..be90dbe 100644 --- a/playwright-java/src/test/java/com/browserstack/PlaywrightLocalUsingBindingsTest.java +++ b/playwright-java/src/test/java/com/browserstack/PlaywrightLocalUsingBindingsTest.java @@ -40,21 +40,16 @@ public static void main(String[] args) { Browser browser = chromium.connect(ws_endpoint); Page page = browser.newPage(); try { - page.navigate("https://www.google.co.in/"); - Locator locator = page.locator("[aria-label='Search']"); - locator.click(); - page.fill("[aria-label='Search']", "BrowserStack"); - page.locator("[aria-label='Google Search'] >> nth=0").click(); - String title = page.title(); - - if (title.equals("BrowserStack - Google Search")) { - // following line of code is responsible for marking the status of the test on BrowserStack as 'passed'. You can use this code in your after hook after each test - markTestStatus("passed", "Title matched", page); - } else { - markTestStatus("failed", "Title did not match", page); - } + page.navigate("http://localhost:45691"); + page.waitForFunction("document" + + ".querySelector(\"body\")" + + ".innerText" + + ".includes(\"This is an internal server for BrowserStack Local\")"); + + // following line of code is responsible for marking the status of the test on BrowserStack as 'passed'. You can use this code in your after hook after each test + markTestStatus("passed", "Local is up and running", page); } catch (Exception err) { - markTestStatus("failed", err.getMessage(), page); + markTestStatus("failed", "BrowserStack Local binary is not running", page); } browser.close(); diff --git a/playwright-python/local-playwright-test.py b/playwright-python/local-playwright-test.py index 5f8c66f..4093148 100644 --- a/playwright-python/local-playwright-test.py +++ b/playwright-python/local-playwright-test.py @@ -15,7 +15,7 @@ 'browserstack.accessKey': 'BROWSERSTACK_ACCESS_KEY' } -def run_local_session(): +def run_local_session(playwright): clientPlaywrightVersion = str(subprocess.getoutput('playwright --version')).strip().split(" ")[1] desired_cap['client.playwrightVersion'] = clientPlaywrightVersion @@ -23,13 +23,10 @@ def run_local_session(): browser = playwright.chromium.connect(cdpUrl) page = browser.new_page() try: - page.goto("https://www.google.co.in/") - page.fill("[aria-label='Search']", 'Browserstack') - locator = page.locator("[aria-label='Google Search'] >> nth=0") - locator.click() + page.goto("http://localhost:45454") title = page.title() - if title == "Browserstack - Google Search": + if title == "BrowserStack Local": # following line of code is responsible for marking the status of the test on BrowserStack as 'passed'. You can use this code in your after hook after each test mark_test_status("passed", "Title matched", page) else: diff --git a/playwright-python/local-using-bindings-playwright-test.py b/playwright-python/local-using-bindings-playwright-test.py index edb7119..9794376 100644 --- a/playwright-python/local-using-bindings-playwright-test.py +++ b/playwright-python/local-using-bindings-playwright-test.py @@ -27,33 +27,34 @@ def run_local_session(playwright): bs_local.start(**bs_local_args) # Check if BrowserStack local instance is running - print("BrowserStackLocal running: " + bs_local.isRunning()) + print("BrowserStackLocal running: " + str(bs_local.isRunning())) clientPlaywrightVersion = str(subprocess.getoutput('playwright --version')).strip().split(" ")[1] desired_cap['client.playwrightVersion'] = clientPlaywrightVersion - - cdpUrl = 'wss://cdp.browserstack.com/playwright?caps=' + urllib.parse.quote(json.dumps(desired_cap)) - browser = playwright.chromium.connect(cdpUrl) - page = browser.new_page() - try: - page.goto("https://www.google.co.in/") - page.fill("[aria-label='Search']", 'Browserstack') - locator = page.locator("[aria-label='Google Search'] >> nth=0") - locator.click() - title = page.title() - if title == "Browserstack - Google Search": + try: + cdpUrl = 'wss://cdp.browserstack.com/playwright?caps=' + urllib.parse.quote(json.dumps(desired_cap)) + browser = playwright.chromium.connect(cdpUrl) + page = browser.new_page() + try: + page.goto("http://localhost:45691") + page.main_frame.wait_for_function(""" + document + .querySelector("body") + .innerText + .includes("This is an internal server for BrowserStack Local") + """) # following line of code is responsible for marking the status of the test on BrowserStack as 'passed'. You can use this code in your after hook after each test - mark_test_status("passed", "Title matched", page) - else: - mark_test_status("failed", "Title did not match", page) - except Exception as err: - mark_test_status("failed", str(err), page) - - browser.close() - - # Stop the Local instance - bs_local.stop() + mark_test_status("passed", "Local is up and running", page) + except Exception: + mark_test_status("failed", "BrowserStack Local binary is not running", page) + browser.close() + except Exception as ex: + print("Exception while creating page context: ", str(ex)) + finally: + # Stop the Local instance + bs_local.stop() + print("BrowserStackLocal stopped") def mark_test_status(status, reason, page): page.evaluate("_ => {}", "browserstack_executor: {\"action\": \"setSessionStatus\", \"arguments\": {\"status\":\""+ status + "\", \"reason\": \"" + reason + "\"}}");