2017-06-13 1 views
0

Gibt es einen Befehl, Selentests ohne Verwendung eines Frameworks auszuführen? z.B. pytest foo_test.pyGibt es einen Befehl, um Selentests auszuführen, die nicht in einem Framework enthalten sind?

Was würde auf meinem lokalen Rechner benötigt werden, um den folgenden Test durchzuführen? Ich bin verwirrt, da dies scheint, die einzige Voraussetzung wäre chromedriver, aber ich weiß nicht, welchen Befehl zu verwenden, um den eigentlichen Test auszuführen.

from selenium import webdriver 
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities 
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC 
from selenium.webdriver.common.by import By 

capa = DesiredCapabilities.CHROME 
capa["pageLoadStrategy"] = "none" 

driver = webdriver.Chrome(desired_capabilities=capa) 
wait = WebDriverWait(driver, 20) 

driver.get('http://stackoverflow.com/') 

wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, '#h-top-questions'))) 

driver.execute_script("window.stop();") 

Antwort

1

ist die Antwort auf Ihre Frage:

Wie Sie Is there a command to run selenium tests without using a framework gebeten haben, die Antwort ist Yes.

Um in einfachen Worten zu antworten, gibt es bestimmte Frameworks wie pytest, unittest, etc in Python, um Ihre Testausführung zu strukturieren und die Testergebnisse zu interpretieren. Jedes der Frameworks hat seine eigenen Stärken. Wenn die Codebasis sperrig wird, hilft uns Frameworks zu arrangieren. Aber Framework ist nicht zwingend erforderlich.

über den Code, ich sehe keinen signifikanten Fehler im Code, aber die Arbeit mit Selen 3.x.x Sie die chromedriver von here und speichern Sie es in Ihrem Computer herunterladen müssen. Während Sie die WebDriver Instanz initialisieren, müssen Sie den absoluten Pfad des chromedriver wie folgt angeben.

Hier ist Ihr eigener Code mit einigen einfachen Optimierungen, die gut an meinem Ende funktioniert:

from selenium import webdriver 
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities 
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC 
from selenium.webdriver.common.by import By 
capa = DesiredCapabilities.CHROME 
capa["pageLoadStrategy"] = "none" 
driver = webdriver.Chrome(desired_capabilities=capa,executable_path="C:\\your_directory\\chromedriver.exe") 
wait = WebDriverWait(driver, 20) 
driver.get('http://stackoverflow.com/') 
wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, '#h-top-questions'))) 
driver.execute_script("window.stop();") 

Lassen Sie mich wissen, ob dies Ihre Frage beantwortet.

+0

Danke, das hat mir geholfen, es perfekt zu verstehen. Ich konnte dieses Beispiel auch lokal ausführen, es scheint, dass ich gerade den Treiberpfad vermisste. Ich untersuche alle Anleitungen, um Selen-Webdriver-Tests ohne Verwendung einer Sprache ausführen zu können, sodass ich alle Befehle besser verstehen kann. – Wunderbread

1

Es gibt tatsächlich 2 Anforderungen, die Sie verwenden. Selenium selbst ist eine Voraussetzung und dann der Chromtreiber wie du erwähnt hast. Die Datei ist nur eine Python-Datei, also können Sie sie ausführen, indem Sie python foo_test.py tun. Es gibt auch die Möglichkeit, ein Framework wie Unittest zu verwenden, das nützlich sein kann, um Testergebnisse zu sehen.

Selen selbst ist kein "Test-Framework", es ist eine Bibliothek von Befehlen, die es einem Benutzer ermöglichen, mit einem Webbrowser zu interagieren. Selenium kann für die Erstellung von Web- oder Automatisierungsaufgaben sowie für Testzwecke verwendet werden. Hier

+0

Danke, ich möchte darauf hinweisen, dass ich nach dem Versuch, die Datei mit dem obigen Code auszuführen, in das folgende Problem lief, von dem ich annehme, dass es mit chromedriver zusammenhängt (muss ich im obigen Beispiel auf chromedriver zeigen?): 'python PageLoadTest.py Traceback (letzter Aufruf zuletzt): Datei "PageLoadTest.py", Zeile 12, in Treiber = webdriver.Chrome (sited_capabilities = capa)' es gibt mehr Ich habe nur die Ausgabe für den Kommentar begrenzt. – Wunderbread

Verwandte Themen