2017-03-11 2 views
0

Ich habe das folgende Skript, das Selen verwendet, aber es funktioniert nicht. Es gibt nur "ok3" aus, was zeigt, dass es nur für den ersten Teil der Klasse gemacht wurde.Selen Python-Funktion läuft nicht

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() 

Ich kann nicht herausfinden, was schief gehen könnte. Das Firefox-Browserfenster startet auch nicht und die Funktion stoppt nicht, wenn die tearDown-Funktion aufgerufen wird.

+1

Einrückung ist falsch, setzen Klassenmethoden tatsächlich in Klasse –

+0

Ja, das ist Formatierung problemw mit SO, wird sehen, ob ich einige hinzufügen kann Einrückungen - aber immer noch das ursprüngliche Problem Überreste. –

Antwort

0

Update Selen (3.3.0), Firefox (52) und geckodriver (0,15)

Add-Treiber Pfad und initialisieren Firefox() direkt

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

empfehle ich Ihnen, Selen 2,35 zu verwenden. 1 mit Firefox 46.0.1, weil die neueste Version von Selen ist nicht kompatibel mit Firefox Browser

+0

Dies sollte ein Kommentar sein, keine Antwort. –