当前位置: 首页 > 知识库问答 >
问题:

Python Selenium WebDriver:在新选项卡中打开URL

弘烨烁
2023-03-14

我有一个每行都有一个URL的文本文档。我希望每个URL都在一个新选项卡中打开。这是我到目前为止所拥有的:

tabs = 0
f = open('links.txt', 'r', encoding='utf-8')
for line in f:
    url = line
    driver.execute_script("window.open(url, 'new_window')")
    sleep(7) # time to let tge page load
    tabs = tabs + 1 # to keep track of how many tabs I have

这给了我一个错误:

回溯(最近一次调用last):驱动程序中第100行的文件“scraper.py”。execute\u script(“window.open(url,'new\u window')”)文件“C:\Python37\lib\site packages\selenium\webdriver\remote\webdriver.py”,第635行,在execute\u script“args”:converted\u args})[“value”]文件“C:\Python37\lib\site packages\selenium\webdriver\remote\webdriver.py”,第320行,在execute self中。error\u处理程序。check\u response raise exception\u class(message,screen,stacktrace)selenium中的check\u response(response)文件“C:\Python37\lib\site packages\selenium\webdriver\remote\errorhandler.py”第242行。常见的例外情况。WebDriverException:消息:未知错误:未定义url

我什么都试过了,但还是不行。有什么想法吗?

共有1个答案

邓光耀
2023-03-14

您试图在执行脚本中错误地传递url变量。改为这样做-

    tabs = 0
    f = open('links.txt', 'r', encoding='utf-8')
    for line in f:
        url = line
        driver.execute_script("window.open(arguments[0])", url)
        sleep(7) # time to let tge page load
        tabs = tabs + 1 # to keep track of how many tabs I have

其中,参数[0]指的是您的url。

 类似资料:
  • 问题内容: 我有来自第三方开发人员的JavaScript文件。它具有一个具有链接的链接,该链接将当前页面替换为目标页面。我想在新标签页中打开此页面。 这是我到目前为止所拥有的: 谁能帮我吗? 问题答案:

  • 所以我试图在我的WebDriver中打开新的标签页。我想这样做,因为打开一个新的WebDriver为每个网站使用PhantomJS约3.5秒,我想要更快... 我使用的是一个多进程python脚本,我希望从每个页面中获取一些元素,因此工作流如下所示:

  • 因此,我有一个,我想冲浪到新选项卡中,链接是不可点击的,所以当我点击这个链接时,什么也不会发生,这将不起作用(甚至不手动): 这是我的web URL:

  • 我想使用Selenium WebDriver和Python在不同的选项卡中打开相当多的URL。 在我的代码中有什么可以改变的地方来让新的URL在new选项卡中打开吗? 谢谢你的帮助!

  • 我如何使用selenium(java)在IE中打开一个新的标签,并在该标签中打开一个url(而不是窗口)?我正在使用下面的代码打开一个新的标签?

  • 问题内容: 如何在同一会话中打开新选项卡,我已经尝试了其他人提供的通用解决方案,但无法正常工作。 我正在Chrome浏览器中尝试。 我的项目在Java中 问题答案: 要打开一个, 您可以使用以下代码行: 要打开一个, 您可以使用以下代码行: