From 67dbfed7b48ba377fb959aaa3f1dec936ee5555d Mon Sep 17 00:00:00 2001 From: Edward Betts Date: Fri, 11 Aug 2023 08:54:09 +0100 Subject: [PATCH 1/7] Give up --- check.py | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/check.py b/check.py index 9217a33..9653c7e 100755 --- a/check.py +++ b/check.py @@ -1,7 +1,7 @@ #!/usr/bin/python3 import os -from datetime import datetime, date +from datetime import date, datetime from playwright.sync_api import Playwright, Request, expect, sync_playwright @@ -50,7 +50,7 @@ class HandleResponse: def run(playwright: Playwright) -> None: """Launch browser and search for options.""" - browser = playwright.chromium.launch(headless=True) + browser = playwright.chromium.launch(headless=False) context = browser.new_context() page = context.new_page() @@ -60,18 +60,6 @@ def run(playwright: Playwright) -> None: page.goto("https://www.eurotunnel.com/uk/") page.get_by_role("button", name="Accept All Cookies").click() page.get_by_role("textbox", name="Outbound").click() - - month = page.locator("div.ui-datepicker-month").first - print(month) - print(month.text_content()) - - page.close() - - context.close() - browser.close() - - return - page.get_by_role("row", name="August 2023").get_by_role("cell").nth(1).click() page.get_by_role("cell", name="29").click() page.get_by_role("textbox", name="Return").click() From 7aaf878ced86135d084f110cb7873b3f296f102d Mon Sep 17 00:00:00 2001 From: Edward Betts Date: Fri, 11 Aug 2023 08:54:36 +0100 Subject: [PATCH 2/7] Headless for production --- check.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/check.py b/check.py index 9653c7e..42a86a8 100755 --- a/check.py +++ b/check.py @@ -50,7 +50,7 @@ class HandleResponse: def run(playwright: Playwright) -> None: """Launch browser and search for options.""" - browser = playwright.chromium.launch(headless=False) + browser = playwright.chromium.launch(headless=True) context = browser.new_context() page = context.new_page() From d018905ae5b575d3a99ecde771d0cabd3a6ff73a Mon Sep 17 00:00:00 2001 From: Edward Betts Date: Fri, 11 Aug 2023 08:55:41 +0100 Subject: [PATCH 3/7] fix --- check.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/check.py b/check.py index 42a86a8..8a39b9a 100755 --- a/check.py +++ b/check.py @@ -54,8 +54,8 @@ def run(playwright: Playwright) -> None: context = browser.new_context() page = context.new_page() - # hr = HandleResponse() - # page.on("requestfinished", hr.requestfinished) + hr = HandleResponse() + page.on("requestfinished", hr.requestfinished) page.goto("https://www.eurotunnel.com/uk/") page.get_by_role("button", name="Accept All Cookies").click() From ebc7bc5721f0aa0905a75cde9e1ae62ea89939d1 Mon Sep 17 00:00:00 2001 From: Edward Betts Date: Fri, 11 Aug 2023 11:32:49 +0100 Subject: [PATCH 4/7] Improvements --- check.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/check.py b/check.py index 9653c7e..d1d7933 100755 --- a/check.py +++ b/check.py @@ -1,6 +1,7 @@ #!/usr/bin/python3 import os +import re from datetime import date, datetime from playwright.sync_api import Playwright, Request, expect, sync_playwright @@ -57,14 +58,23 @@ def run(playwright: Playwright) -> None: # hr = HandleResponse() # page.on("requestfinished", hr.requestfinished) + re_month_name = re.compile(r"^([A-Z][a-z]+) (\d{4})$") + page.goto("https://www.eurotunnel.com/uk/") page.get_by_role("button", name="Accept All Cookies").click() + page.get_by_role("textbox", name="Outbound").click() - page.get_by_role("row", name="August 2023").get_by_role("cell").nth(1).click() + month_row = page.get_by_role("row", name=re_month_name) + month_and_year = month_row.inner_text() + if month_and_year == "August 2023": + month_row.get_by_role("cell").nth(1).click() + # page.get_by_role("row", name="August 2023").get_by_role("cell").nth(1).click() page.get_by_role("cell", name="29").click() + page.get_by_role("textbox", name="Return").click() page.get_by_role("row", name="September 2023").get_by_role("cell").nth(2).click() page.get_by_role("cell", name="6", exact=True).click() + page.get_by_role("button", name="Search and book").click() page.get_by_label("Enter your vehicle registration").fill("KE69HRR") page.get_by_role("button", name="Find").click() From 0e3a9d7ea2b03a4134c7c52ce2c9fc05d530c3bc Mon Sep 17 00:00:00 2001 From: Edward Betts Date: Fri, 11 Aug 2023 11:35:32 +0100 Subject: [PATCH 5/7] Improvements --- check.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/check.py b/check.py index dc0fe7d..7f41650 100755 --- a/check.py +++ b/check.py @@ -55,8 +55,8 @@ def run(playwright: Playwright) -> None: context = browser.new_context() page = context.new_page() - # hr = HandleResponse() - # page.on("requestfinished", hr.requestfinished) + hr = HandleResponse() + page.on("requestfinished", hr.requestfinished) re_month_name = re.compile(r"^([A-Z][a-z]+) (\d{4})$") @@ -65,10 +65,11 @@ def run(playwright: Playwright) -> None: page.get_by_role("textbox", name="Outbound").click() month_row = page.get_by_role("row", name=re_month_name) - month_and_year = month_row.inner_text() + month_and_year = month_row.inner_text().strip() if month_and_year == "August 2023": month_row.get_by_role("cell").nth(1).click() - # page.get_by_role("row", name="August 2023").get_by_role("cell").nth(1).click() + else: + assert month_and_year == "September 2023" page.get_by_role("cell", name="29").click() page.get_by_role("textbox", name="Return").click() From 63a854867bfe06039c8b12c17b7add182ae074da Mon Sep 17 00:00:00 2001 From: Edward Betts Date: Sun, 3 Sep 2023 10:47:48 -0400 Subject: [PATCH 6/7] New return date and bug fix. --- check.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/check.py b/check.py index 7f41650..d5e3158 100755 --- a/check.py +++ b/check.py @@ -73,8 +73,8 @@ def run(playwright: Playwright) -> None: page.get_by_role("cell", name="29").click() page.get_by_role("textbox", name="Return").click() - page.get_by_role("row", name="September 2023").get_by_role("cell").nth(2).click() - page.get_by_role("cell", name="6", exact=True).click() + page.get_by_role("row", name="September 2023").get_by_role("cell").nth(1).click() + page.get_by_role("cell", name="13", exact=True).click() page.get_by_role("button", name="Search and book").click() page.get_by_label("Enter your vehicle registration").fill("KE69HRR") @@ -89,9 +89,7 @@ def run(playwright: Playwright) -> None: page.locator("#slots div").filter(has_text="12:00To").locator("span").click() page.locator("div:nth-child(5) > .times > div:nth-child(2) > .radio-button").click() - page.locator( - "div:nth-child(17) > .d-flex > div > .body > .radio-button" - ).first.click() + page.locator(".ticket:visible").first.click() page.get_by_role("button", name="Confirm and choose return ticket").click() expect(page.get_by_text(return_label)).to_be_visible() From 64e7ea653e04e8a5eae29bd603e2f837de4f9344 Mon Sep 17 00:00:00 2001 From: Edward Betts Date: Fri, 6 Oct 2023 18:11:15 +0100 Subject: [PATCH 7/7] Add gitignore --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..94d583b --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +__pycache__ +.mypy_cache +run.fcgi