如何在一个选项卡中使用 Selenium 和 Python 逐一运行测试?
Posted
技术标签:
【中文标题】如何在一个选项卡中使用 Selenium 和 Python 逐一运行测试?【英文标题】:How to run tests one by one using Selenium and Python in one tab? 【发布时间】:2022-01-02 04:45:09 【问题描述】:我对自动化测试还很陌生,所以不要太用力地打败我。
所以我有 2 个单独的文件和 2 个不同的测试:
-
登录成功
创建请求
我可以成功运行登录案例,但我无法运行第二个,因为它需要登录。有什么方法可以运行第一个(用户登录)并运行下一个一个在同一个浏览器窗口中没有关闭这个窗口,所以下一个测试就像上一个的延续?
所以,这里是一个登录测试
from selenium import webdriver
from pages.base_element import BaseElement
from pages.login_page import LoginPage
# Test Setup
browser = webdriver.Chrome()
currentURL = None
# Successful Login
log_page = LoginPage(driver=browser)
log_page.go() <-------------------------------------------Goes to the Login Page
log_page.user_name_field.input_text('mail@gmail.com')
log_page.password_field.input_text('Pass123')
log_page.login_button.click()
这里用于创建请求
from selenium import webdriver
from pages.base_element import BaseElement
from pages.med_page import LoginPage
from pages.med_page import MedPage
# Test
Setup browser = webdriver.Chrome()
currentURL = None
# Test
med_page = MedPage(driver=browser)
med_page.go() <----------------- Must redirect to the Request Page, but redirects to Login as it is a new browser session, so the user is not logged in
【问题讨论】:
【参考方案1】:是的,你可以!在本例中,我将您的登录代码文件命名为“login”:
from login import *
from pages.med_page import MedPage
###some request###
当您使用“from login import *”引用登录脚本时,它会运行登录脚本中的所有内容。希望这会有所帮助!
【讨论】:
好的,谢谢!它使它变得更好!现在测试一个一个运行,但仍然在单独的窗口中,所以我无论如何都无法创建请求screencast.com/t/urna3WtJ6cim @Kiprian 您不必在代码的###some request### 部分中启动另一个驱动程序。你应该只需要打电话给司机一次然后提出你的要求。如果您需要在该网页中切换到子网址,请说“driver.get(subUrl)”您只需执行一次“browser = webdriver.Chrome()”即可。 @Kiprian 如果我的回答对你有帮助,请接受我的回答,谢谢!! 非常感谢@Luke!你真的帮了我!!!以上是关于如何在一个选项卡中使用 Selenium 和 Python 逐一运行测试?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 selenium 从空选项卡中获取 URL“about:blank”?
如何使用Selenium在页面中的多个子选项卡中传递驱动程序实例?
如何使用 Selenium WebDriver 打开一个新选项卡并启动链接?
如何专注于第二个选项卡并使用 selenium webdriver 处理它
未知错误:由于未知错误导致页面崩溃,会话被删除:无法从 ChromeDriver Selenium 崩溃的选项卡中确定加载状态