Traceback (most recent call last): File "D:/selenium/ZenTaoTestPro/Action/login_action.py", line 40, in <module> login.login_fail('test', 'test001') File "D:/selenium/ZenTaoTestPro/Action/login_action.py", line 27, in login_fail self.login_action(username, password) File "D:/selenium/ZenTaoTestPro/Action/login_action.py", line 17, in login_action self.login_page.screenshot_as_file() File "D:\selenium\ZenTaoTestPro\common\base_page.py", line 284, in screenshot_as_file self.driver.get_screenshot_as_file(screenshot_filepath) File "D:\Software\python\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 1032, in get_screenshot_as_file png = self.get_screenshot_as_png() File "D:\Software\python\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 1064, in get_screenshot_as_png return base64.b64decode(self.get_screenshot_as_base64().encode('ascii')) File "D:\Software\python\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 1074, in get_screenshot_as_base64 return self.execute(Command.SCREENSHOT)['value'] File "D:\Software\python\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute self.error_handler.check_response(response) File "D:\Software\python\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 241, in check_response raise exception_class(message, screen, stacktrace, alert_text) selenium.common.exceptions.UnexpectedAlertPresentException: Alert Text: Message: unexpected alert open: <unknown> (Session info: chrome=81.0.4044.138) Process finished with exit code 1
定位上述错误地方:
File "D:/selenium/ZenTaoTestPro/Action/login_action.py", line 17, in login_action self.login_page.screenshot_as_file() File "D:\selenium\ZenTaoTestPro\common\base_page.py", line 284, in screenshot_as_file self.driver.get_screenshot_as_file(screenshot_filepath) File "D:\Software\python\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 1032, in get_screenshot_as_file png = self.get_screenshot_as_png()
是因为调用方法里写的 self.driver.get_screenshot_as_file(screenshot_filepath) 导致的错误;将方法中的这块删除就能解决问题:
# 错误代码
def login_action(self, username, password): self.login_page.implicitly_wait() self.login_page.input_username(username) self.login_page.input_password(password) self.login_page.click_login_button() # self.login_page.screenshot_as_file() #删除
# 调用 def login_fail(self, username, password): self.login_action(username, password) return self.login_page.get_login_fail_alert_content() # 调试 if __name__ == '__main__': driver = Browser().get_driver() login = LoginAction(driver) bp = BasePage(driver) bp.open_url(local_config.test_url) login.login_fail('test', 'test001')
这样就解决问题了。