2017-02-17 5 views
0

Ich kann nicht auf Schaltfläche für eine python Skript klicken, wenn ich dieses Skript von Jenkins ausführen.Jenkins nicht in der Lage, Button für Python Selen Skript zu klicken

Hinweis: Das Skript funktioniert einwandfrei, wenn ich diese über die Eingabeaufforderung auf demselben Server ausführen.

Unten ist der Fehler:

selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//input[@type="submit"][@id="btnSubmitExport"][@class="Button"]"} 

Antwort

1

Es scheint ein Timing-Problem zu sein. Sie sollten einige Sekunden ExplicitWait hinzuzufügen versuchen, bis Element in DOM erscheint:

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

wait(driver, 10).until(EC.presence_of_element_located((By.XPATH, '//input[@type="submit"][@id="btnSubmitExport"][@class="Button"]'))).click() 
+0

Ihre Antwort geschätzt, aber die Zeit ist keine Einschränkung hier. Ich benutze bereits Zeit warten, obwohl Skript funktioniert gut über die Eingabeaufforderung, nur es scheitert in Jenkins. –

+0

Teilen weitere Details: Ihre 'Python' Code, den Sie verwenden Taste zu handhaben, die Browser Sie verwenden, was genau Sie Ihr Skript – Andersson

+0

Script Klicks Submit-Button auf interne URL ausführen möchten, Browser = Chrome, Stück Code: element_var = '// input [@ type = "absenden"] [@ id = "btnSubmitExport"] [@ class = "Schaltfläche"]' driver.find_element_by_xpath (element_var) .click() –

0

Ausgabe von mir gelöst habe ... Eigentlich ist das Problem Eingabeaufforderung von Windows-Benutzer ausgeführt wird und der Jenkins Slave-Maschine läuft anderer Benutzer, der nicht denselben Zugriff wie Windows-Benutzer hat. Um Benutzer zu überprüfen verwendete ich whoami Befehl in Eingabeaufforderung sowie Eingabeaufforderung von Jenkins. Dadurch erhalten Sie den Benutzernamen.

Verwandte Themen