그래서 HTML 파일에 테이블을 만드는 HTML 코드가있다. 여기에는 데이터에 포함될 헤더와 예제 행이 있습니다. 다음은 코드입니다.자이 썬을 사용하여 HTML 테이블에 행 추가하기
<!DOCTYPE html PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'>
<html>
<head>
<style type='text/css'>
p {margin: 0em 0 0em 0}
th {color: blue; text-align: left}
tr {color: black; text-align: left}
table {font-size: 25}
table, th, td {border: 1px solid black}
</style>
<meta content='text/html; charset=ISO-8859-1'http-equiv='content-type'>
<title>Test Results</title>
</head>
<body>
<table>
<tr>
<th>Test</th>
<th>Status</th>
<th>DateTime</th>
<th>Blank Lines</th>
</tr>
<tr>
<td>AreaStudyClimate</td>
<td><font color='green'>PASSED</font></td>
<td>20140707 11:38:37.473000</td>
<td>[]</td>
</tr>
</table>
</body>
</html>
단순히 jython을 사용하여 데이터 행을 추가하려고합니다. 나는 그것을 어떻게 했는가, 그러나 그것은 꽤 못생긴 것처럼 보인다. 내가가 쓰고 싶은 동일한 파일의 원래 HTML 코드를 읽고 있어요 때문에이 변수로 설정
row +=" <tr>\n" \
" <td>%s</td>\n" \
" <td>%s</td>\n" \
" <td>%s</td>\n" \
" <td>%s</td>\n" \
" </tr>\n"
이유는 : 나는 다음 HTML 코드를 연결 한 변수를 만들 수 있습니다. 그래서 어떻게 설정했는지, 나는 말 하나 하나를 "추가"하지 않고 이전 행을 추가 행이 들어있는 코드로 바꾸십시오. for 루프를 사용하여 해당 정보를 추가하려고합니다. (필자의 경우에는/table을 읽을 때까지 기다렸다가 거기에 삽입합니다. - 테이블의 맨 아래에 넣습니다.) 나는 그것이 실패 할 경우이 통과되는 경우 녹색 또는 빨간색으로 원하기 때문에
time = str(datetime.now()).replace("-","")
failed_lines = str(failed_fields).replace(",",".")
if len(failed_fields) == 0:
status = "<font color='green'>PASSED</font>"
else:
status = "<font color='red'>FAILED<font>"
file = open("C:/psi-test-automation/SikuliX Projects/ValueChecking.sikuli/TestResults.html", 'r+')
row = ""
for line in file.readlines():
if "/table" in line:
row +=" <tr>\n" \
" <td>%s</td>\n" \
" <td>%s</td>\n" \
" <td>%s</td>\n" \
" <td>%s</td>\n" \
" </tr>\n"
row+=line
newform = row % (form['title'], status, time, failed_lines)
file.close()
file = open("C:/psi-test-automation/SikuliX Projects/ValueChecking.sikuli/TestResults.html", 'w')
file.write(newform)
file.close()
나는 색상 코드를 포함하는 "상태"변수가 : 여기 파이썬 코드입니다.
마지막 문제는 코드를 바꾸려면 필자가 readline을 사용하기 위해서 (적어도 필자가 볼 수있는 한) 읽기 모드에 있어야한다는 것입니다. 그러나 파일의 내용을 지우려면 쓰기 모드 (복사가 필요한 데이터를 지울 수 있기 때문에 시작할 수 없습니다)로되어 있어야합니다. 이 문제를 해결하기 위해 파일의 읽기 버전을 닫고 새 코드를 만든 후 쓰기 모드로 다시 엽니 다. 이것이 가장 좋은 방법이라고 생각합니다 (f.truncate()가 아무 것도하지 않았 음). 어느 한 쪽...).
요약하면, 저는 현재 이전 HTML 코드를 추가 행이 들어있는 업데이트 된 코드로 바꾸고 있습니다. jython 코드를 사용하여 HTML 테이블에 행을 추가하려고합니다.
죄송합니다. 그런 긴 게시물에는 죄송하지만, 많은 정보가 들어 있습니다.
Jinja2와 같은 템플릿 엔진을 사용할 수 있습니까? – Nathaniel
나는 addons/modules를 얻지 않는 것을 선호한다. 나는 기술적으로 자이 썬을 명확히해야한다고 생각한다. – user2869231