【问题标题】:Is there a way to force webbrowser into opening a new window instead of just opening tabs in current windows?有没有办法强制 webbrowser 打开一个新窗口,而不仅仅是在当前窗口中打开选项卡?
【发布时间】:2020-04-10 13:11:06
【问题描述】:
import webbrowser
import os
n = ""
while (n == ""):
  n = input("How many pages do you want?\n")
start_page = ""
url = input("Yeezy Supply or Adidas?""\nEither 'YS' or 'Adidas'\n")
url_choice = url.lower()
#print(url_choice)

if url_choice == 'ys':
  start_page = "www.yeezysupply.com/"
elif url_choice == "adidas":
  start_page =  "www.adidas.com/yeezy"
#print(start_page)

page_number = list()
for i in range(0, int(n)):
  page_number.append(n)

for i in range(0, len(page_number)):
  chromelink = r"C:\Users\Michael\Desktop\FlashCop\bin\chromedriver.exe"
  webbrowser.register('chrome',None,webbrowser.BackgroundBrowser(chromelink))
  os.system(r'cmd /c "C:\Users\Michael\Desktop\FlashCop\bin\chromedriver.exe"start_page')
  webbrowser.open_new(start_page)

这只会在打开新标签时产生。有没有办法强制chrome打开一个新窗口而不是一个新标签?

【问题讨论】:

  • 您期待的答案与last time 不同吗?
  • @martineau 有人说有一种方法,但这种方法不起作用,所以我重新发布以获得新的答案......

标签: python python-3.x python-webbrowser


【解决方案1】:

试试这个:

import subprocess

chrome_path = "chrome.exe --new-window"

times = ""
start_page = ""

while times == "":
    times = input("How many pages do you want?\n")

url = input("Yeezy Supply or Adidas?""\nEither 'YS' or 'Adidas'\n")
url_choice = url.lower()

if url_choice == 'ys':
    start_page = "www.yeezysupply.com/"
elif url_choice == "adidas":
    start_page = "www.adidas.com/yeezy"

page_number = list()
for i in range(0, int(times)):
    page_number.append(times)


for i in range(0, len(page_number)):
    command = 'cmd /c "%s %s"' % (chrome_path, start_page)
    process = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE)

由于 --new-window 标志,它在新窗口中打开带有 cmd(作为子进程)的 url。


确保在路径变量中添加 chrome.exe 或 chromedriver - tutorial (pdf) 或确保将完整的文件路径添加到您要使用的 webbrowser 可执行文件/二进制文件。

【讨论】:

  • 运行时我只收到这条消息 PS C:\Users\Michael\documents> py FlashCop.py Starting ChromeDriver 79.0.3945.36 (3582db32b33893869b8c1339e8f4d9ed1816f143-refs/branch-heads/3945@{#614} ) 在端口 9515 上只允许本地连接。请保护 ChromeDriver 和相关测试框架使用的端口,防止恶意代码访问。脚本实际上并没有运行。
  • 您能否尝试将“chrome.exe”替换为您的 chrome.exe 所在位置的完整路径!也许这有帮助!
  • 您好,对不起,我犯了一个错误,我不知道把这个新代码放在哪里。我把它放在 webbrowser.open_new(start_page) 前面,它仍然在标签中打开
  • 有没有更简单的方法可以在不使用 chromedriver 或 chrome 的情况下打开多个窗口?我需要为我一直在做的项目做这件事
  • 我编辑了代码以显示版本,请检查一下,这会打开页面但仅在选项卡中,它也会给出此错误 chromedriver.exestart_page' is not Recognized as an internal or external command,可运行的程序或批处理文件。
猜你喜欢
  • 2023-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-29
  • 1970-01-01
相关资源
最近更新 更多