2017-09-06 6 views
0

私はここのプロジェクトで仕事をしています.5行以上の要素にプリントラインが表示されています。すべての出力をtxtファイルに追加する必要があります。私はforループを使うことができるとは言われましたが、どうしたらよいかわかりません。私の最高の選択肢は何ですか?すべての出力を1つのtxtファイルにstdoutするには

import unittest 
from selenium import webdriver 
import time 
import sys 

driver = webdriver.Chrome() 

driver.get('website') 
driver.maximize_window() 

# Displays Time Sheet for Current Day 
element = driver.find_element_by_xpath('//*[@id="page-wrapper"]/div[1]/h1') 
# this element is visible 

print(element.text) 

# Displays Start Time 
element = driver.find_element_by_xpath('//* 
[@id="pageinner"]/div/div[1]/div/div/div/div[1]/div[2]/div[1]') 
print("Start time was at:", element.text) 

# Displays End Time 
element = driver.find_element_by_xpath('//* 
[@id="pageinner"]/div/div[1]/div/div/div/div[4]/div[2]/div[1]') 
print("Clocked out as of:", element.text) 

# Displays when out to Lunch 
element = driver.find_element_by_xpath('//*[@id="page- 
inner"]/div/div[1]/div/div/div/div[2]/div[2]/div[1]/h3') 
print("I left for Lunch at:", element.text) 

# Displays when back from Lunch 
element = driver.find_element_by_xpath('//*[@id="page- 
inner"]/div/div[1]/div/div/div/div[3]/div[2]/div[1]/h3') 
print("I arrived back from Lunch at:", element.text) 

# Total Hours for The Day 
element = driver.find_element_by_xpath('//*[@id="page- 
inner"]/div/div[1]/div/div/div/div[5]/div[2]/div[1]') 
print("I was at work for:", element.text) 

''' 
# Save to txt 
sys.stdout = open('file.txt', 'w') 
print(element.text) 
''' 

# Screenshot 
# driver.save_screenshot('screenshot.png') 


driver.close() 

if __name__ == '__main__': 
    unittest.main() 

最後に、すべての印刷物を文書化するためにtxtファイルに保存する必要があります。

+3

「stdout」を '.txt'ファイルに移動することを意味しますか? 'python myfile.py> out.txt'だけです。 – YoYoYonnY

+0

それ以外の場合は、https://docs.python.org/2/tutorial/inputoutput.html、Ctrl + F:ファイルをご覧ください。 – YoYoYonnY

+0

私はそれを試みましたが、うまくいきませんでした –

答えて

1

Selenium 3.5Python 3.6.1とバインディングログファイルにすべてのConsole Outputsをリダイレクトする簡単な方法を提供します。

あなたが名前Logでプロジェクトスペース内のサブディレクトリを作成し、次のようにログファイルにConsole Outputsのリダイレクトを開始することができます:

# Firefox 
driver = webdriver.Firefox(executable_path=r'C:\your_path\geckodriver.exe', log_path='./Log/geckodriver.log') 

# Chrome 
driver = webdriver.Chrome(executable_path=r'C:\your_path\chromedriver.exe', service_log_path='./Log/chromedriver.log') 

# IE 
driver = webdriver.Ie(executable_path=r'C:\your_path\IEDriverServer.exe', log_file='./Log/IEdriver.log') 

冗長ことを言及する価値がありますwebdriverは簡単に設定できます。

関連する問題