ChromeDriver控制的Chrome无法触发beforeunload弹窗问题求助
ChromeDriver控制的Chrome无法触发beforeunload弹窗问题求助
我最近做了一个测试,用下面的HTML实现了一个功能:当用户填写表单但还没提交就切换页面时,会弹出beforeunload提示框。
<!DOCTYPE html> <html> <body> <div class="container"> <form action="#"> <label>First Name</label> <input type="text" id="fname" name="firstname" onchange="updateFname()"> <button class="submit-btn" onclick="return false;"> Submit </button> </form> </div> <script type="text/javascript"> let fname = ''; updateFname = () => { fname = document .getElementById('fname').value; } window.addEventListener('beforeunload', function (e) { if (fname !== '') { console.log("form is filled but not submitted yet"); e.preventDefault(); e.returnValue = ''; } }); </script> </body> </html>
直接用Chrome浏览器测试的时候,这个提示框能正常弹出来(Chrome单独运行时,页面会弹出确认是否离开的提示框)。
但当我用Selenium结合ChromeDriver(版本131)启动Chrome时,填写表单后切换页面,浏览器直接跳转了,完全没弹出这个提示框。而且我之前用100以下版本的Chrome和ChromeDriver时,这个功能是正常的,提示框能正常显示。
下面是我启动ChromeDriver的代码:
driver_service = ChromeDriverService( executable_path=self.driver_exe, log_path=self.driverlog, service_args=self.driver_args, # for chromedriver ) self.driver = webdriver.Chrome( service=driver_service, options=self.browser_options, )
我也导出了当前使用的Chrome配置和ChromeDriver参数:
- Chrome选项参数:
['--user-data-dir=C:/Users/xxx/selenium_browser',
'--window-size=1260,720',
'--disable-gpu',
'--enable-javascript',
'--disable-extensions',
'--disable-dev-shm-usage',
'enable-automation',
'--disable-browser-side-navigation']
- ChromeDriver参数:`['--verbose']` 有没有大佬知道怎么让这个beforeunload提示框在ChromeDriver控制的Chrome里重新正常弹出呀?谢谢大家! --- 备注:内容来源于stack exchange,提问作者oldpride
相关产品推荐
相关产品推荐

