Использование Python Playwright и объектной модели страницы
Сценарий:
При нажатии ссылки открывается новая вкладка. Остальные операции необходимо выполнить на новой странице.
Без объектной модели страницы: мне удалось это сделать. Код ниже:
def run(playwright:Playwright) -> None:
browser = playwright.chromium.launch()
context = browser.new_context()
page= context.new_page()
page.goto(URL)
with context.expect_page as Account_setup_page:
accountSetup_link.click()
new_page = Account_setup_page.value
startaccount = new_page.locator('')
Приведенный выше код работает нормально, поскольку контекст браузера находится в том же файле кода.
Теперь используем объектную модель страницы
strong>: Нужны указания, как нам переключиться на новую вкладку?
В файле conftest.py есть контекстная ссылка:
@pytest.fixture(scope="function")
def accsetup(request,playwright)
browser=playwright.chromium.launch()
context=browser.new_context()
page=context.new_page()
page.goto(URL)
yield page
context.close()
browser.close()
Теперь в файле кода страницы:
filename: AccountSetupE2E.py
class AccountSetup:
def __init__(self,page)
self.page = page
self.username = page.locator()
self.pwd = page.locator()
self.login = page.locator()
def fillaccountdetails(self):
self.username.fill("test")
self.pwd.fill("testpwd")
self.login.click()
После успешного входа в систему нажмите ссылку accountSetup_link, чтобы открыть новую вкладку.
Я не могу придумать, как ссылаться на новую вкладку для выполнения операций по настройке учетной записи.
URL-адрес приложения открывается... но невозможно щелкнуть даже по имени пользователя. Это сработало, когда контекст не был возвращен. Только в этом сценарии мне нужно использовать новую вкладку для проверки тестового примера.
Я попробовал ниже, и это не работает:
contest.py:
@pytest.fixture(scope="function")
def accsetup(request,playwright)
browser=playwright.chromium.launch()
context=browser.new_context()
page=context.new_page()
page.goto(URL)
yield page,context
context.close()
browser.close()
filename: AccountSetupE2E.py
class AccountSetup:
def __init__(self,page,context)
self.page = page
self.context=context
self.username = page.locator()
self.pwd = page.locator()
self.login = page.locator()
self.accountSetup_link =page.locator()
with context.expect_page() as Account_setup_page:
self.accountSetup_link.click()
new_page = Account_setup_page.value
self.startaccount = new_page.locator('')
def fillaccountdetails(self):
self.username.fill("test")
self.pwd.fill("testpwd")
self.login.click()
self.startaccount .click()
TestCasefile -> Test_Accountsetup.py
class Test_accsetup:
def test_accSetup(self,accsetup):
page,context=acc_setup
acpage = acc_setup(page,context)
acpage.fillaccountdetails()
Подробнее здесь: https://stackoverflow.com/questions/791 ... ject-model
Python Playwright несколько вкладок Объектная модель страницы ⇐ Python
Программы на Python
-
Anonymous
1734468593
Anonymous
Использование Python Playwright и объектной модели страницы
Сценарий:
При нажатии ссылки открывается новая вкладка. Остальные операции необходимо выполнить на новой странице.
[b]Без объектной модели страницы:[/b] мне удалось это сделать. Код ниже:
def run(playwright:Playwright) -> None:
browser = playwright.chromium.launch()
context = browser.new_context()
page= context.new_page()
page.goto(URL)
with context.expect_page as Account_setup_page:
accountSetup_link.click()
new_page = Account_setup_page.value
startaccount = new_page.locator('')
Приведенный выше код работает нормально, поскольку контекст браузера находится в том же файле кода.
Теперь [b]используем объектную модель страницы
strong>: Нужны указания, как нам переключиться на новую вкладку?
В файле conftest.py есть контекстная ссылка:[/b]
@pytest.fixture(scope="function")
def accsetup(request,playwright)
browser=playwright.chromium.launch()
context=browser.new_context()
page=context.new_page()
page.goto(URL)
yield page
context.close()
browser.close()
Теперь в файле кода страницы:
filename: AccountSetupE2E.py
class AccountSetup:
def __init__(self,page)
self.page = page
self.username = page.locator()
self.pwd = page.locator()
self.login = page.locator()
def fillaccountdetails(self):
self.username.fill("test")
self.pwd.fill("testpwd")
self.login.click()
После успешного входа в систему нажмите ссылку accountSetup_link, чтобы открыть новую вкладку.
Я не могу придумать, как ссылаться на новую вкладку для выполнения операций по настройке учетной записи.
URL-адрес приложения открывается... но невозможно щелкнуть даже по имени пользователя. Это сработало, когда контекст не был возвращен. Только в этом сценарии мне нужно использовать новую вкладку для проверки тестового примера.
Я попробовал ниже, и это не работает:
contest.py:
@pytest.fixture(scope="function")
def accsetup(request,playwright)
browser=playwright.chromium.launch()
context=browser.new_context()
page=context.new_page()
page.goto(URL)
yield page,context
context.close()
browser.close()
filename: AccountSetupE2E.py
class AccountSetup:
def __init__(self,page,context)
self.page = page
self.context=context
self.username = page.locator()
self.pwd = page.locator()
self.login = page.locator()
self.accountSetup_link =page.locator()
with context.expect_page() as Account_setup_page:
self.accountSetup_link.click()
new_page = Account_setup_page.value
self.startaccount = new_page.locator('')
def fillaccountdetails(self):
self.username.fill("test")
self.pwd.fill("testpwd")
self.login.click()
self.startaccount .click()
TestCasefile -> Test_Accountsetup.py
class Test_accsetup:
def test_accSetup(self,accsetup):
page,context=acc_setup
acpage = acc_setup(page,context)
acpage.fillaccountdetails()
Подробнее здесь: [url]https://stackoverflow.com/questions/79107300/python-playwright-multiple-tabs-page-object-model[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия