mirror of
https://github.com/nextcloud/docker.git
synced 2025-03-14 18:35:08 +01:00
Talk - first pass
This commit is contained in:
parent
c9c5a59acc
commit
089a3f196f
2 changed files with 90 additions and 17 deletions
|
@ -1,36 +1,36 @@
|
|||
from playwright.async_api import async_playwright
|
||||
from playwright.sync_api import sync_playwright
|
||||
from time import time
|
||||
|
||||
async def main():
|
||||
async with async_playwright() as playwright:
|
||||
def main():
|
||||
with sync_playwright() as playwright:
|
||||
browser_type = playwright.chromium
|
||||
browser = await browser_type.launch(
|
||||
headless=True,
|
||||
browser = browser_type.launch(
|
||||
headless=False,
|
||||
args=["--no-sandbox", "--disable-setuid-sandbox", "--disable-dev-shm-usage"]
|
||||
)
|
||||
page = await browser.new_page()
|
||||
# await page.set_default_timeout(60_000) # milliseconds
|
||||
await page.goto('http://nc/')
|
||||
page = browser.new_page()
|
||||
page.goto('http://localhost:8080/')
|
||||
page.set_default_timeout(120_000)
|
||||
|
||||
# 1. Create User
|
||||
await page.type('#adminlogin', 'Crash')
|
||||
await page.type('#adminpass', 'Override')
|
||||
await page.click('.primary')
|
||||
page.type('#adminlogin', 'Crash')
|
||||
page.type('#adminpass', 'Override')
|
||||
page.click('.primary')
|
||||
print(time(), "Create user clicked")
|
||||
|
||||
# 2. Install all Apps
|
||||
install_selector = '.button-vue--vue-primary'
|
||||
await page.wait_for_selector(install_selector)
|
||||
await page.click(install_selector)
|
||||
page.wait_for_selector(install_selector)
|
||||
page.click(install_selector)
|
||||
print(time(), "Install apps clicked")
|
||||
|
||||
# 3. Dashboard
|
||||
await page.wait_for_selector('.app-dashboard')
|
||||
page.wait_for_selector('.app-dashboard')
|
||||
print(time(), "Dashboard found")
|
||||
page.get_by_role("button", name="Close modal").click()
|
||||
|
||||
await browser.close()
|
||||
browser.close()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
import asyncio
|
||||
asyncio.run(main())
|
||||
main()
|
||||
|
|
73
nextcloud_talk_playwright.py
Normal file
73
nextcloud_talk_playwright.py
Normal file
|
@ -0,0 +1,73 @@
|
|||
from playwright.sync_api import Playwright, sync_playwright
|
||||
|
||||
|
||||
def create_conversation(playwright: Playwright) -> str:
|
||||
browser = playwright.chromium.launch(headless=False)
|
||||
context = browser.new_context()
|
||||
page = context.new_page()
|
||||
page.goto("http://localhost:8080/login")
|
||||
page.get_by_label("Account name or email").click()
|
||||
page.get_by_label("Account name or email").fill("Crash")
|
||||
page.get_by_label("Account name or email").press("Tab")
|
||||
page.get_by_label("Password", exact=True).fill("Override")
|
||||
page.get_by_role("button", name="Log in").click()
|
||||
try:
|
||||
page.get_by_role("button", name="Close modal").click(timeout=3000)
|
||||
except Exception:
|
||||
pass
|
||||
page.get_by_role("link", name="Talk", exact=True).click()
|
||||
page.get_by_role("button", name="Create a new group conversation").click()
|
||||
page.get_by_placeholder("Conversation name").fill("Random talk")
|
||||
page.locator("label").filter(has_text="Allow guests to join via link").locator("svg").click()
|
||||
page.get_by_role("button", name="Create conversation").click()
|
||||
page.get_by_role("button", name="Copy conversation link").click()
|
||||
page.close()
|
||||
|
||||
# ---------------------
|
||||
context.close()
|
||||
browser.close()
|
||||
|
||||
return page.url
|
||||
|
||||
def talk(playwright: Playwright, url: str) -> None:
|
||||
browser_one = playwright.chromium.launch(headless=False, slow_mo=1500)
|
||||
browser_two = playwright.chromium.launch(headless=False, slow_mo=1500)
|
||||
context_one = browser_one.new_context()
|
||||
context_two = browser_two.new_context()
|
||||
user_one = context_one.new_page()
|
||||
user_two = context_two.new_page()
|
||||
|
||||
user_one.goto(url)
|
||||
user_two.goto(url)
|
||||
user_one.get_by_role("button", name="Edit").click()
|
||||
user_two.get_by_role("button", name="Edit").click()
|
||||
user_one.get_by_placeholder("Guest").fill("Dude#1")
|
||||
user_two.get_by_placeholder("Guest").fill("Dude#2")
|
||||
user_one.get_by_role("button", name="Save name").click()
|
||||
user_two.get_by_role("button", name="Save name").click()
|
||||
|
||||
user_one.get_by_role("textbox", name="Write message, @ to mention someone …").click()
|
||||
user_one.get_by_role("textbox", name="Write message, @ to mention someone …").fill("Heya")
|
||||
user_one.get_by_role("textbox", name="Write message, @ to mention someone …").press("Enter")
|
||||
|
||||
user_two.get_by_role("textbox", name="Write message, @ to mention someone …").click()
|
||||
user_two.get_by_role("textbox", name="Write message, @ to mention someone …").fill("Let's send some /dev/random")
|
||||
user_two.get_by_role("textbox", name="Write message, @ to mention someone …").press("Enter")
|
||||
|
||||
user_one.get_by_role("textbox", name="Write message, @ to mention someone …").click()
|
||||
user_one.get_by_role("textbox", name="Write message, @ to mention someone …").fill("Lets!")
|
||||
user_one.get_by_role("textbox", name="Write message, @ to mention someone …").press("Enter")
|
||||
|
||||
user_one.close()
|
||||
user_two.close()
|
||||
|
||||
# ---------------------
|
||||
context_one.close()
|
||||
context_two.close()
|
||||
browser_one.close()
|
||||
browser_two.close()
|
||||
|
||||
|
||||
with sync_playwright() as playwright:
|
||||
conversation_link = create_conversation(playwright)
|
||||
talk(playwright, conversation_link)
|
Loading…
Add table
Reference in a new issue