2017-03-22 1 views
1

Firefox/Selenium 인스턴스를 이미지의 기본 슬라이드 쇼로 사용하려고합니다. 로컬 디렉토리에서 webdriverdriver.get() 개의 파일을 열 계획입니다. 나는 다음을 실행하면Selenium Open 로컬 파일

, 나는 오류가 나타납니다 selenium.common.exceptions.WebDriverException: Message: Tried to run command without establishing a connection

내 가정은 셀레늄은 다음 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

파일 이름에 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() 
+0

고마워 -이 작동하지 않습니다. 나는 'file : //'을 주소의 시작 부분에 추가하려고 시도했지만 필자의 예제는 확실히 원하는 방식으로 작동한다고 믿고 싶다. – Daniel

+1

위의 사항은 로컬 HTML에는 적용되지 않습니다. 이 코드를 로컬 html로 시도하면 코드가 멈추게됩니다. –