2017-03-11 1 views
0

셀렌을 사용하는 다음 스크립트가 있지만 작동하지 않습니다. 그냥 "ok3"을 인쇄하여 클래스의 첫 번째 부분에만 표시했습니다.셀레늄 파이썬 함수가 실행되지 않습니다

from selenium import webdriver 
from selenium.webdriver.common.by import By 
from selenium.webdriver.support.ui import Select 
from selenium.common.exceptions import NoSuchElementException 
import unittest 
import time 
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary 

class Test(unittest.TestCase): 
    print('ok3') 
    binary = FirefoxBinary("/Users/djnewt/Desktop/Python/geckodriver") 
    self.driver = webdriver.Firefox(firefox_binary=binary) 
    self.driver.get("http://google.com") 

    def tearDown(self): 
     self.driver.quit() 

    def test_selenium_1(self): 
     print('ok4') 
     search_field = self.driver.find_element_by_id("lst-ib") 
     search_field.send_keys("Test 1. Number 1") 
     search_field.submit() 
     print("ok1") 
     time.sleep(2) 


x = Test() 
x.test_selenium_1() 
x.tearDown() 

무엇이 잘못 될지 알 수 없습니다. 파이어 폭스 브라우저 창도 실행되지 않으며 tearDown 함수가 호출되면 함수가 멈 춥니 다.

+1

들여 쓰기가 틀리다, 클래스 메서드를 실제로 클래스에 넣어 –

+0

예, 이것은 형식화 된 문제이므로, 제가 추가 할 수 있는지 보겠습니다. 들여 쓰기 -하지만 여전히 원래의 문제 유적. –

답변

0

업데이트 셀레늄 (3.3.0), 파이어 폭스 (52)와 geckodriver 경로 (0.15)

추가 드라이버와 파이어 폭스를 초기화() 직접

from selenium import webdriver 
from selenium.webdriver.common.by import By 
from selenium.webdriver.support.ui import Select 
from selenium.common.exceptions import NoSuchElementException 
import unittest 
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary 
import time 

class Test(unittest.TestCase): 
def __init__(self): 
     print('ok3') 
     binary = FirefoxBinary("D:\\1.Manoj\\2.Soft-war\\5.Rest\\geckodriver.exe") 
     self.driver = webdriver.Firefox()#firefox_binary=binary) 
     self.driver.get("http://google.com") 

def tearDown(self): 
    self.driver.quit() 

def test_selenium_1(self): 
    print('ok4') 
    search_field = self.driver.find_element_by_id("lst-ib") 
    search_field.send_keys("Test 1. Number 1") 
    search_field.submit() 
    print("ok1") 
    time.sleep(2) 


x = Test() 
x.test_selenium_1() 
x.tearDown() 
0

난 당신이 셀레늄 2.35를 사용하는 것이 좋습니다. 1로 파이어 폭스 46.0.1로, 셀렌의 최신 버전은 Firefox 브라우저와 호환되지 않기 때문에

+0

이것은 답변이 아니라 주석이어야합니다. –

관련 문제