问题由来:用selenium+unittest编写自动化测试代码过程中出现了此问题
selenium.common.exceptions.TimeoutException: Message(在最大时间范围内没找到元素)
(导入模块代码省略。。。)
# 未登录点击首页大视频播放器
def test_0_nologin_click_big_studio(self):
#点击首页视频播放器进入直播间,等待出现聊天室最大视频区域出现
IndexPage(self.dirver).click_enter_studio()
# 断言登录弹窗出现
self.assertTrue(LoginPage(self.dirver).is_appears_login())
运行结果:
======================================================================
ERROR: test_0_nologin_click_big_studio (__main__.TestIndexPage)
----------------------------------------------------------------------
Traceback (most recent call last):
, line 43, in test_0_nologin_click_big_studio
self.assertTrue(LoginPage(self.dirver).is_appears_login())
, in is_appears_login
WebDriverWait(self.driver, 20).until(EC.visibility_of_element_located((LPL.login_alert)))
, line 80, in until
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:
用例描述:前置条件:用户未登录 测试步骤:点击首页视频播放器中间进入主播直播间 (如下图)
image.png
点击后进入直播间
image.png
这两天一直在找这个问题所在,终于在刚刚发现了问题所在,原来是窗口没切换过去😭😭
调整后代码如下:
# 未登录点击首页大视频播放器
def test_0_nologin_click_big_studio(self):
#获取当前打开的窗口数
handle=self.dirver.window_handles
#点击首页视频播放器进入直播间,等待出现聊天室最大视频区域出现
IndexPage(self.dirver).click_enter_studio()
#等待新窗口出现
WebDriverWait(self.dirver,10).until(EC.new_window_is_opened(handle))
#再次获取窗口总数
handles=self.dirver.window_handles
#切换窗口
self.dirver.switch_to.window(handles[-1])
# 断言登录弹窗出现
self.assertTrue(LoginPage(self.dirver).is_appears_login())
运行结果:
..
----------------------------------------------------------------------
Ran 2 tests in 215.229s
OK
Process finished with exit code 0










网友评论