如何在一个选项卡中使用 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 崩溃的选项卡中确定加载状态

如何切换到 Selenium 中的活动选项卡?