提问人:DandyCat 提问时间:11/15/2023 最后编辑:DandyCat 更新时间:11/18/2023 访问量:64
将 chromedriver 更新到版本 119 后,无法使用 Selenium+Python 隐藏浏览器模式窗口
Can’t hide the browser modal window using Selenium+Python after updating the chromedriver to version 119
问:
我非常需要你的帮助!我在 Gitlab CI\CD 中使用 Selenium+python+pytest 编写了自动测试。将 Chrome 以及相应的 Chrome 驱动程序更新到版本 119 后,不再使用注册页面上指定的 Web 驱动程序选项阻止弹出模式浏览器窗口。若要使用页面元素,需要取消它或阻止其外观。因此,由于模式窗口,测试看不到注册页面的元素。在 Chrome 版本 118 中,测试在以下选项中没有问题:
def driver() -> WebDriver:
print("\nStart browser for test..")
options=Options()
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')
options.add_argument('--disable-gpu')
options.add_argument('--disable-browser-side-navigation')
options.add_argument('--disable-infobars')
options.add_argument('--disable-extensions')
options.add_argument('--start-maximized')
options.add_argument('--disable-notifications')
options.add_argument('--disable-translate')
browser = webdriver.Remote(
command_executor='http://selenium__standalone-chrome:4444/wd/hub',
options=options)
yield browser
print("\nQuit browser")
browser.quit()
我的gitlab-ci.yml:
image: python:3.10.0
default:
tags:
- almalinux8
- common
- dev-runner05
- devops
- docker
stages:
- test
.job_template:
before_script:
- pip install --upgrade pip
- pip install -r requirements.txt
script:
- pytest -s -v --tb=native
e2e:remote:chrome:
extends: .job_template
services:
- selenium/standalone-chrome
Chrome浏览器的模式窗口如下所示:在此处输入图像描述
所以我尝试使用这段代码来关闭模态窗口:
webdriver.ActionChains(driver).send_keys(Keys.ESCAPE).perform()
还有这个:
alert=driver.switch_to.alert
alert.dismiss()
但这些代码什么也做不了。我还尝试使用自动测试模块 pyautogui 和键盘,但它们不适用于 Gitlab CI\CD,仅适用于本地启动的 Chrome 浏览器。使用 pyautogui 时,它是 CI\CD 错误:
ImportError while loading conftest '/builds/luxms-bi/luxms-bi-data/Autotests/Sales/conftest.py'.
Autotests/Sales/conftest.py:31: in <module>
import pyautogui
/usr/local/lib/python3.10/site-packages/pyautogui/__init__.py:246: in <module>
import mouseinfo
/usr/local/lib/python3.10/site-packages/mouseinfo/__init__.py:223: in <module>
_display = Display(os.environ['DISPLAY'])
/usr/local/lib/python3.10/os.py:679: in __getitem__
raise KeyError(key) from None
E KeyError: 'DISPLAY'
使用键盘时,错误:FileNotFoundError: [Errno 2] No such file or directory: 'dumpkeys'
答:
-1赞
DandyCat
11/17/2023
#1
通过添加以下内容解决了该问题:
options.add_argument('--headless')
评论