web-dev-qa-db-fra.com

Les applications de démarrage n'ont pas exécuté mon script

J'ajoute un élément dans les applications de démarrage comme suit: Éditer le programme de démarrage

Je répète la commande ici, pour votre commodité:

gnome-terminal --command  "sleep 30;export PATH=$PATH:/home/erik/Downloads/geckodriver_dir;python ~/Dropbox/BashScripts/fjucheckin.py"

Une fois entré dans mon bureau et allumé mon ordinateur portable, il est prévu d’ouvrir un terminal gnome, puis d’exécuter le script python _ fjucheckin.py pour ouvrir une fenêtre Firefox, puis se connecter automatiquement nom, puis attendez que j’appuie sur une touche pour fermer la fenêtre de Firefox. Mais il s'avère qu'aucune fenêtre gnome-terminal ou Firefox ne s'affiche.

Ensuite, je lance manuellement la commande gnome-terminal --command "sleep 30;export PATH=$PATH:/home/erik/Downloads/geckodriver_dir;python ~/Dropbox/BashScripts/fjucheckin.py" mentionnée ci-dessus et un terminal s'affiche et se ferme en une seconde. Aucune fenêtre Firefox ne s'affiche.

Et je lance le sleep 30;export PATH=$PATH:/home/erik/Downloads/geckodriver_dir;python ~/Dropbox/BashScripts/fjucheckin.py manuellement, et ça marche.

Le python script fjucheckin.py est comme suit, si vous en avez besoin:

#!/usr/bin/env python
# -*- coding: utf-8 -*- 

import time
from Selenium import webdriver
from Selenium.webdriver.common.keys import Keys
from Selenium.webdriver import ActionChains
#import org.openqa.Selenium.support.ui.Select;
from Selenium.webdriver.support.ui import Select
from Selenium.webdriver.support.ui import WebDriverWait
from Selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Firefox()
driver.implicitly_wait(1000) # seconds
driver.get("http://140.136.251.114/Aiamis/Login.aspx")
#assert "Python" in driver.title

#Account
elem = driver.find_element_by_name("ctl00$ContentPlaceHolder$txtAccount")
elem.clear()
elem.send_keys("...")
elem.send_keys(Keys.TAB)
assert "No results found." not in driver.page_source

#Password
elem = driver.find_element_by_name("ctl00$ContentPlaceHolder$txtPwd")
elem.clear()
elem.send_keys("...")
elem.send_keys(Keys.RETURN)
assert "No results found." not in driver.page_source

#// Get a handle to the open alert, Prompt or confirmation
WebDriverWait(driver, 1000).until(EC.alert_is_present())
alert = driver.switch_to.alert;
#// And acknowledge the alert (equivalent to clicking "OK")
alert.accept();

elem = driver.find_element_by_link_text("差勤/日誌填寫");
hover = ActionChains(driver).move_to_element(elem).move_to_element(driver.find_element_by_link_text("專任助理簽到退"));
hover.click().perform();

elem = driver.find_element_by_id("ctl00_ContentPlaceHolder_ddlPlanToday")
Select(elem).select_by_value("500767");

driver.find_element_by_id("ctl00_ContentPlaceHolder_rdSignType_0").click();

elem = driver.find_element_by_id("ctl00_ContentPlaceHolder_txtTodayOther")
elem.clear()
description = u"研究資料整理"
elem.send_keys(description)

driver.find_element_by_id("ctl00_ContentPlaceHolder_btnSignToday").click()

#pause
raw_input()
driver.close()
2
Erik Apostol

Joignez vos commandes entre guillemets:

gnome-terminal --command 'bash -c "sleep 30 ; export PATH=$PATH:/home/erik/Downloads/geckodriver_dir ; python ~/Dropbox/BashScripts/fjucheckin.py ; bash"'  

Avoir "bash" à la fin des commandes gardera le terminal ouvert.

0
stumblebee