首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用python、selenium、pyvirtualdisplay打开一个新窗口?

如何使用python、selenium、pyvirtualdisplay打开一个新窗口?
EN

Stack Overflow用户
提问于 2021-10-15 22:30:40
回答 1查看 256关注 0票数 1

我用python编写了一个刮板程序,它使用selenium、chrome和添加的扩展。刮板在本地工作,显示是可见的,但当我尝试在headless模式下运行它时,就不会这样做了。

在刮过的网站上有一个按钮,它会自动打开一个新的窗口(我不能通过URL访问它,以便在一个新的选项卡中打开它)。

代码语言:javascript
复制
click_button() # the button opens a new window with a confirmation button
driver.switch_to.window(driver.window_handles[1]) # switching to the confirmation window
click_confirm() # when confirm is clicked the window closes automatically
driver.switch_to.window(driver.window_handles[0]) # switching back to original window

Chrome在安装扩展时不能在无头环境下工作,所以我不得不使用pyvirtualdisplay。

问题是,Display of pyvirtualdisplay只打开一个浏览器窗口,因此永远不会出现确认窗口。如何允许pyvirtualdisplay打开新窗口并在它们之间交替使用?

EN

回答 1

Stack Overflow用户

发布于 2021-10-16 21:32:57

事实证明,pyvirtualdisplay确实打开了一个窗口,但是它的大小是1 1px乘1 1px。显然,设置webdriver大小的方式在pyvirtualdisplay中不能正常工作:

代码语言:javascript
复制
options = Options()
options.add_argument('--window-size="1980,1080"')
driver = webdriver.Chrome(executable_path=chrome_driver_path, options=options)

设置它像吼叫解决了我的问题和窗口是一个正常的大小:

代码语言:javascript
复制
driver = webdriver.Chrome(executable_path=chrome_driver_path)
driver.set_window_size(1980,1080)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69591229

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档