python - Python + Selenium WebDriver: open URL in new tab
问题描述
I have a text document with a single URL on every line. I want each URL to be opened in a new tab. Heres what I have so far:
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
This gives me the error:
Traceback (most recent call last): File "scraper.py", line 100, in driver.execute_script("window.open(url, 'new_window')") File "C:\Python37\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 635, in execute_script 'args': converted_args})['value'] File "C:\Python37\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 320, in execute self.error_handler.check_response(response) File "C:\Python37\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response raise exception_class(message, screen, stacktrace) selenium.common.exceptions.WebDriverException: Message: unknown error: url is not defined
I have tried everything, but can't get it to work. Any Ideas?
解决方案
您试图url
在execute_script
. 改为这样做 -
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
其中,arguments[0]
指的是您的网址。
推荐阅读
- angular - Angular proxy.conf.js 修改来自服务器的响应
- javascript - 用多个 OR 运算符编写 if 条件的最优雅方法是什么?
- javascript - 使用nodejs将base64 pdf文件上传到s3无法在s3打开但能够下载然后打开它工作正常
- docker - 用于运行 Docker 命令的脚本
- javascript - app.vote(1,{ from: accounts[0] }) 给出错误
- r - 将数据框导出到 tsv,但缺少 row.names?
- docker - 如何使用 docker 运行 JHipster UAA?
- java - 是否可以从分析中停用“声纳方式”质量配置文件?
- webstorm - 如何在 WebStorm 中自动设置配置
- c# - 如何在WPF中双击显示上下文菜单