[英]ElementNotVisibleException error in Python/Selenium webdriver
[英]Selenium Python webdriver error
我在这一行上遇到以下python脚本的问题:
driver = webdriver.Firefox(firefox_profile=profile, proxy=proxy).
我收到此错误:
回溯(最近一次调用最后一次):文件“C:\\ Python27 \\ example2.py”,第45行,在driver = webdriver.Firefox(firefox_profile = profile,proxy = proxy)文件“C:\\ Python27 \\ lib \\ site-packages \\ selenium \\ webdriver \\ firefox \\ webdriver.py“,第135行,在init self.service.start()文件”C:\\ Python27 \\ lib \\ site-packages \\ selenium \\ webdriver \\ common \\ service.py“,第71行,在启动os.path.basename(self.path),self.start_error_message)WebDriverException:消息:'geckodriver'可执行文件需要在PATH中。
我已经查找了可能导致问题的文档,但我找不到任何可以解决此问题的内容。 有什么想法吗?
此外,有没有办法,我可以使用IE而不是Firefox,如果是这样,我需要用什么代码切换出什么?
以下是完整代码:
import random, time, requests
from selenium import webdriver
from selenium.webdriver.common.proxy import *
from bs4 import BeautifulSoup
USER_AGENTS_FILE = './user_agents.txt'
RUNNING = True
def LoadUserAgents(uafile=USER_AGENTS_FILE) :
uas = []
with open(uafile, 'rb') as uaf:
for ua in uaf.readlines():
if ua:
uas.append(ua.strip()[1:-1-1])
random.shuffle(uas)
return uas
uas = LoadUserAgents()
while RUNNING == True:
address = []
response = requests.get('https://www.sslproxies.org')
soup = BeautifulSoup (response.content, "html.parser")
rows = soup.findAll ("tr")
for row in rows:
if (len(row.findAll("td"))== 8):
address.append(row.contents[0].contents[0] + ':' + row.contents[1].contents[0])
random.shuffle(address)
PROXY = random.choice(address)
proxy = Proxy ({
'proxyType': ProxyType.MANUAL,
'httpProxy': PROXY,
'ftpProxy': PROXY,
'sslProxy': PROXY,
'noProxy': ''
})
profile = webdriver.FirefoxProfile()
profile.set_preference('general.useragent.override', random.choice(uas))
driver = webdriver.Firefox(firefox_profile=profile, proxy=proxy)
driver.set_page_load_timeout(10)
try:
driver.get("http://www.ipchicken.com/")
time.sleep(60)
driver.quit()
except:
diver.quit()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.