当我尝试迭代一个链接列表并使用此代码访问Selenium时:
# create link list
urlList = []
with open('my.txt','r') as f:
for i in f:
urlList.append(i)
# navigate to URL
for i in (urlList):
getUrl = driver.get(i)
driver.implicitly_wait(3)
我收到此错误:
selenium.common.exceptions.WebDriverException:消息:未知错误:未处理的检查程序错误:{“code”: - 32603,“message”:“无法导航到无效的网址”} (会话信息:chrome = 51.0.2704.106) (驱动程序信息:chromedriver = 2.9.248304,platform = Linux 4.2.0-16-generic x86_64
显然for循环是从列表中生成换行符并将它们输入到driver.get方法中。如何让它代替网址?
答案 0 :(得分:1)
如果您从该文件中读取的网址混入了换行符,请尝试:
with open('my.txt','r') as f:
for i in f:
urlList.append(i.strip())
这将从每个i
中删除前导和尾随空格。此外,循环不会生成\n
,它们存在于您的文件中,每行可能包含一个网址,每行末尾都有一个'\n'
。
答案 1 :(得分:0)
我在计算机上运行你的程序,但我没有收到任何错误?
这是my.txt
档案,其中有两个中国网站网址:
https://www.baidu.com/
https://www.sogou.com/
这是test.py
个文件,get
中的网站my.txt
:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import time
from selenium import webdriver
driver = webdriver.Chrome() # Optional argument, if not specified will search path.
urlList = []
with open('my.txt', 'r') as f:
for i in f:
urlList.append(i)
for i in (urlList):
print(i)
getUrl = driver.get(i)
time.sleep(3)
driver.implicitly_wait(3)
这些是我程序的输出:
➜ /tmp/selenium $ python3 test.py
https://www.baidu.com/
https://www.sogou.com/
所以我认为你的计划可能还有其他错误。您能否显示my.txt
和完整代码的内容?