我正在尝试使用Firefox / Selenium实例作为图像的基本幻灯片。我的想法是,我将从本地目录中打开webdriver
和driver.get()
个文件。
当我运行以下内容时,收到错误消息:
selenium.common.exceptions.WebDriverException: Message: Tried to run command without establishing a connection
我的假设是selenium正在尝试测试下一个driver.get()
请求并且不允许本地的,非网络连接的连接是否有办法绕过这种行为?我的代码示例如下所示:
from selenium import webdriver
import time
from os import listdir
from selenium.common.exceptions import WebDriverException
driver = webdriver.Firefox()
image_source = '/home/pi/Desktop/slideshow/photo_frames/daniel/images/'
for file in listdir(image_source):
if file.endswith('jpg'):
file_name = image_source + file
driver.get(file_name)
time.sleep(5)
与往常一样,任何帮助都将不胜感激。
更新: 我应该补充说,相同的基本脚本结构适用于网站 - 我可以在没有任何错误的情况下遍历多个网站。
答案 0 :(得分:3)
我认为您只需要在文件名中添加file://
即可。这对我有用:
from selenium import webdriver
import time
from os import listdir
from selenium.common.exceptions import WebDriverException
def main():
image_source = '/home/pi/Desktop/slideshow/photo_frames/daniel/images/'
driver = webdriver.Firefox()
try:
for file in listdir(image_source):
if file.endswith('jpg'):
file_name = 'file://' + image_source + file
driver.get(file_name)
time.sleep(5)
finally:
driver.quit()
if __name__ == "__main__":
main()
答案 1 :(得分:1)
如果像我一样,您是想让Selenium服务于您的本地html文件,则上面Niklas Rosencrantz所注意到的,上面接受的答案需要对其进行微小的修改。
要让Selenium在浏览器中提供本地html,并假设文件位于当前工作目录中,请尝试以下操作(我在Windows上,使用Selenium 3.141.0和Python 3.7-如果您觉得重要):
from selenium import webdriver
import os
browser = webdriver.Firefox()
html_file = os.getcwd() + "//" + "relative//path//to//file.html"
browser.get("file:///" + html_file)
答案 2 :(得分:0)