首页 > 解决方案 > 根据用户输入使用 selenium 打开选项卡

问题描述

我正在尝试制作一个脚本,程序在其中输入多个 URL,然后为每个 URL 打开选项卡,这就是我想出的


s=raw_input()
l=s.split()
t=len(l)

for elements in l:
    elements = ["https://" + elements + "" for elements in l]

driver = webdriver.Chrome(r"C:/Users/mynam/Desktop/WB/chromedriver.exe")

driver.get("https://www.google.com")

for e in elements:
    driver.implicitly_wait(3)
    driver.execute_script("window.open(e,'new window')")

print "Opened in new tab"

我收到 e 未定义的错误,我们如何在 selenium 中将参数传递给 window.open

标签: pythonseleniumautomation

解决方案


您需要执行新窗口,切换到它并打开新页面。

from selenium import webdriver
import os


def open_tab_page(page, page_number):
    browser.execute_script("window.open('');")
    browser.switch_to.window(browser.window_handles[page_number])
    browser.get(page)

# initialise driver
chrome_driver = os.path.abspath(os.path.dirname(__file__)) + '/chromedriver'
browser = webdriver.Chrome(chrome_driver)
browser.get("http://stackoverflow.com/")

# list of pages to open
pages_list = ['https://www.google.com', 'https://www.youtube.com/']

page_number = 1
for page in pages_list:
    open_tab_page(page, page_number)
    page_number +=1

推荐阅读