Commit fdd4bb7665fe01dfb433c5dc1e7506c84845aabb
0 parents
windows
Showing
192 changed files
with
5799 additions
and
0 deletions
Show diff stats
1 | +++ a/.classpath | |
... | ... | @@ -0,0 +1,31 @@ |
1 | +<?xml version="1.0" encoding="UTF-8"?> | |
2 | +<classpath> | |
3 | + <classpathentry kind="src" output="target/classes" path="src/main/java"> | |
4 | + <attributes> | |
5 | + <attribute name="optional" value="true"/> | |
6 | + <attribute name="maven.pomderived" value="true"/> | |
7 | + </attributes> | |
8 | + </classpathentry> | |
9 | + <classpathentry kind="src" output="target/test-classes" path="src/test/java"> | |
10 | + <attributes> | |
11 | + <attribute name="optional" value="true"/> | |
12 | + <attribute name="maven.pomderived" value="true"/> | |
13 | + </attributes> | |
14 | + </classpathentry> | |
15 | + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"> | |
16 | + <attributes> | |
17 | + <attribute name="maven.pomderived" value="true"/> | |
18 | + </attributes> | |
19 | + </classpathentry> | |
20 | + <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"> | |
21 | + <attributes> | |
22 | + <attribute name="maven.pomderived" value="true"/> | |
23 | + </attributes> | |
24 | + </classpathentry> | |
25 | + <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"> | |
26 | + <attributes> | |
27 | + <attribute name="maven.pomderived" value="true"/> | |
28 | + </attributes> | |
29 | + </classpathentry> | |
30 | + <classpathentry kind="output" path="target/classes"/> | |
31 | +</classpath> | ... | ... |
1 | +++ a/.project | |
... | ... | @@ -0,0 +1,23 @@ |
1 | +<?xml version="1.0" encoding="UTF-8"?> | |
2 | +<projectDescription> | |
3 | + <name>essa</name> | |
4 | + <comment></comment> | |
5 | + <projects> | |
6 | + </projects> | |
7 | + <buildSpec> | |
8 | + <buildCommand> | |
9 | + <name>org.eclipse.jdt.core.javabuilder</name> | |
10 | + <arguments> | |
11 | + </arguments> | |
12 | + </buildCommand> | |
13 | + <buildCommand> | |
14 | + <name>org.eclipse.m2e.core.maven2Builder</name> | |
15 | + <arguments> | |
16 | + </arguments> | |
17 | + </buildCommand> | |
18 | + </buildSpec> | |
19 | + <natures> | |
20 | + <nature>org.eclipse.jdt.core.javanature</nature> | |
21 | + <nature>org.eclipse.m2e.core.maven2Nature</nature> | |
22 | + </natures> | |
23 | +</projectDescription> | ... | ... |
1 | +++ a/.settings/org.eclipse.jdt.core.prefs | |
... | ... | @@ -0,0 +1,5 @@ |
1 | +eclipse.preferences.version=1 | |
2 | +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 | |
3 | +org.eclipse.jdt.core.compiler.compliance=1.5 | |
4 | +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning | |
5 | +org.eclipse.jdt.core.compiler.source=1.5 | ... | ... |
1 | +++ a/Log/20180404_172707.log | |
... | ... | @@ -0,0 +1,28 @@ |
1 | +2018-04-04 17:27:07.424 INFO: 开始从配置文件中选择浏览器 | |
2 | +2018-04-04 17:27:07.439 INFO: 所选择的浏览器类型为: Chrome | |
3 | +2018-04-04 17:27:07.439 INFO: 所测试的URL地址为: http://bpms.hotfix.gz.essa | |
4 | +2018-04-04 17:27:18.932 INFO: 正在启动Chrome浏览器 | |
5 | +2018-04-04 17:27:20.474 INFO: 窗口最大化 | |
6 | +2018-04-04 17:27:25.129 INFO: 打开URL: http://bpms.hotfix.gz.essa | |
7 | +2018-04-04 17:27:25.154 INFO: 设置隐性等待5 秒 | |
8 | +2018-04-04 17:27:25.626 INFO: 清除文本框中已有字符: //*[@id='username']] | |
9 | +2018-04-04 17:27:25.887 INFO: 输入的字符是:admin | |
10 | +2018-04-04 17:27:26.000 INFO: 清除文本框中已有字符: //*[@id='password']] | |
11 | +2018-04-04 17:27:26.154 INFO: 输入的字符是:essa123 | |
12 | +2018-04-04 17:27:34.439 ERROR: 1. | |
13 | +2018-04-04 17:27:34.837 INFO: 点击元素: //*[text()='供应商管理']] | |
14 | +2018-04-04 17:27:39.876 ERROR: no such element: Unable to locate element: {"method":"xpath","selector":"//*/a[contains(text(),'平台运营跟进管理')]"} | |
15 | + (Session info: chrome=65.0.3325.181) | |
16 | + (Driver info: chromedriver=2.37.543627 (63642262d9fb93fb4ab52398be4286d844092a5e),platform=Windows NT 10.0.10586 x86) (WARNING: The server did not provide any stacktrace information) | |
17 | +Command duration or timeout: 5.02 seconds | |
18 | +For documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html | |
19 | +Build info: version: '2.46.0', revision: '61506a4624b13675f24581e453592342b7485d71', time: '2015-06-04 10:22:50' | |
20 | +System info: host: 'DESKTOP-NIGE62D', ip: '10.0.2.15', os.name: 'Windows 10', os.arch: 'x86', os.version: '10.0', java.version: '1.8.0_144' | |
21 | +Driver info: org.openqa.selenium.chrome.ChromeDriver | |
22 | +Capabilities [{applicationCacheEnabled=false, rotatable=false, mobileEmulationEnabled=false, networkConnectionEnabled=false, chrome={chromedriverVersion=2.37.543627 (63642262d9fb93fb4ab52398be4286d844092a5e), userDataDir=C:\Users\jin\AppData\Local\Temp\scoped_dir3436_21321}, takesHeapSnapshot=true, pageLoadStrategy=normal, databaseEnabled=false, handlesAlerts=true, hasTouchScreen=false, version=65.0.3325.181, platform=XP, browserConnectionEnabled=false, nativeEvents=true, acceptSslCerts=false, acceptInsecureCerts=false, locationContextEnabled=true, webStorageEnabled=true, browserName=chrome, takesScreenshot=true, javascriptEnabled=true, cssSelectorsEnabled=true, setWindowRect=true, unexpectedAlertBehaviour=}] | |
23 | +Session ID: 9a5890016096ab721e6f083fec63e551 | |
24 | +*** Element info: {Using=xpath, value=//*/a[contains(text(),'平台运营跟进管理')]}. | |
25 | +2018-04-04 17:27:40.080 INFO: 检查元素是否存在:true | |
26 | +2018-04-04 17:27:40.142 INFO: 获取所要读取的文件 | |
27 | +2018-04-04 17:27:41.720 INFO: 文件为:.xlsx格式 | |
28 | +2018-04-04 17:27:41.752 INFO: 读取文件成功 | ... | ... |
1 | +++ a/Log/20180404_172957.log | |
... | ... | @@ -0,0 +1,24 @@ |
1 | +2018-04-04 17:29:57.032 INFO: 开始从配置文件中选择浏览器 | |
2 | +2018-04-04 17:29:57.032 INFO: 所选择的浏览器类型为: Chrome | |
3 | +2018-04-04 17:29:57.032 INFO: 所测试的URL地址为: http://bpms.hotfix.gz.essa | |
4 | +2018-04-04 17:30:01.505 INFO: 正在启动Chrome浏览器 | |
5 | +2018-04-04 17:30:03.032 INFO: 窗口最大化 | |
6 | +2018-04-04 17:30:05.808 INFO: 打开URL: http://bpms.hotfix.gz.essa | |
7 | +2018-04-04 17:30:05.857 INFO: 设置隐性等待5 秒 | |
8 | +2018-04-04 17:30:05.972 INFO: 获取所要读取的文件 | |
9 | +2018-04-04 17:30:07.251 INFO: 文件为:.xlsx格式 | |
10 | +2018-04-04 17:30:07.255 INFO: 读取文件成功 | |
11 | +2018-04-04 17:30:07.438 INFO: 清除文本框中已有字符: //*[@id='username']] | |
12 | +2018-04-04 17:30:07.631 INFO: 输入的字符是:admin | |
13 | +2018-04-04 17:30:07.744 INFO: 清除文本框中已有字符: //*[@id='password']] | |
14 | +2018-04-04 17:30:07.896 INFO: 输入的字符是:essa123 | |
15 | +2018-04-04 17:30:15.235 ERROR: 1. | |
16 | +2018-04-04 17:30:15.329 INFO: 判断检查点是否存在 | |
17 | +2018-04-04 17:30:21.626 ERROR: 1. | |
18 | +2018-04-04 17:30:21.954 INFO: 清除文本框中已有字符: //*[@id='username']] | |
19 | +2018-04-04 17:30:22.162 INFO: 输入的字符是:linrong | |
20 | +2018-04-04 17:30:22.413 INFO: 清除文本框中已有字符: //*[@id='password']] | |
21 | +2018-04-04 17:30:22.608 INFO: 输入的字符是:essa123 | |
22 | +2018-04-04 17:30:30.282 ERROR: 1. | |
23 | +2018-04-04 17:30:30.329 INFO: 判断检查点是否存在 | |
24 | +2018-04-04 17:30:36.485 ERROR: 1. | ... | ... |
1 | +++ a/Log/20180404_174033.log | |
... | ... | @@ -0,0 +1,24 @@ |
1 | +2018-04-04 17:40:33.264 INFO: 开始从配置文件中选择浏览器 | |
2 | +2018-04-04 17:40:33.264 INFO: 所选择的浏览器类型为: Chrome | |
3 | +2018-04-04 17:40:33.264 INFO: 所测试的URL地址为: http://bpms.hotfix.gz.essa | |
4 | +2018-04-04 17:40:37.858 INFO: 正在启动Chrome浏览器 | |
5 | +2018-04-04 17:40:39.370 INFO: 窗口最大化 | |
6 | +2018-04-04 17:40:41.876 INFO: 打开URL: http://bpms.hotfix.gz.essa | |
7 | +2018-04-04 17:40:41.888 INFO: 设置隐性等待5 秒 | |
8 | +2018-04-04 17:40:41.990 INFO: 获取所要读取的文件 | |
9 | +2018-04-04 17:40:43.249 INFO: 文件为:.xlsx格式 | |
10 | +2018-04-04 17:40:43.264 INFO: 读取文件成功 | |
11 | +2018-04-04 17:40:43.456 INFO: 清除文本框中已有字符: //*[@id='username']] | |
12 | +2018-04-04 17:40:43.651 INFO: 输入的字符是:admin | |
13 | +2018-04-04 17:40:43.788 INFO: 清除文本框中已有字符: //*[@id='password']] | |
14 | +2018-04-04 17:40:43.965 INFO: 输入的字符是:essa123 | |
15 | +2018-04-04 17:40:51.827 ERROR: 1. | |
16 | +2018-04-04 17:40:51.920 INFO: 判断检查点是否存在 | |
17 | +2018-04-04 17:40:58.155 ERROR: 1. | |
18 | +2018-04-04 17:40:58.300 INFO: 清除文本框中已有字符: //*[@id='username']] | |
19 | +2018-04-04 17:40:58.465 INFO: 输入的字符是:linrong | |
20 | +2018-04-04 17:40:58.583 INFO: 清除文本框中已有字符: //*[@id='password']] | |
21 | +2018-04-04 17:40:58.735 INFO: 输入的字符是:essa123 | |
22 | +2018-04-04 17:41:06.217 ERROR: 1. | |
23 | +2018-04-04 17:41:06.296 INFO: 判断检查点是否存在 | |
24 | +2018-04-04 17:41:12.685 ERROR: 1. | ... | ... |
1 | +++ a/Log/20180404_180230.log | |
... | ... | @@ -0,0 +1,24 @@ |
1 | +2018-04-04 18:02:30.274 INFO: 开始从配置文件中选择浏览器 | |
2 | +2018-04-04 18:02:30.290 INFO: 所选择的浏览器类型为: Chrome | |
3 | +2018-04-04 18:02:30.290 INFO: 所测试的URL地址为: http://bpms.hotfix.gz.essa | |
4 | +2018-04-04 18:02:34.212 INFO: 正在启动Chrome浏览器 | |
5 | +2018-04-04 18:02:35.688 INFO: 窗口最大化 | |
6 | +2018-04-04 18:02:38.118 INFO: 打开URL: http://bpms.hotfix.gz.essa | |
7 | +2018-04-04 18:02:38.137 INFO: 设置隐性等待5 秒 | |
8 | +2018-04-04 18:02:38.216 INFO: 获取所要读取的文件 | |
9 | +2018-04-04 18:02:39.212 INFO: 文件为:.xlsx格式 | |
10 | +2018-04-04 18:02:39.231 INFO: 读取文件成功 | |
11 | +2018-04-04 18:02:39.467 INFO: 清除文本框中已有字符: //*[@id='username']] | |
12 | +2018-04-04 18:02:39.711 INFO: 输入的字符是:admin | |
13 | +2018-04-04 18:02:39.833 INFO: 清除文本框中已有字符: //*[@id='password']] | |
14 | +2018-04-04 18:02:40.008 INFO: 输入的字符是:essa123 | |
15 | +2018-04-04 18:02:48.181 ERROR: 1. | |
16 | +2018-04-04 18:02:48.243 INFO: 判断检查点是否存在 | |
17 | +2018-04-04 18:02:54.447 ERROR: 1. | |
18 | +2018-04-04 18:02:54.641 INFO: 清除文本框中已有字符: //*[@id='username']] | |
19 | +2018-04-04 18:02:54.815 INFO: 输入的字符是:linrong | |
20 | +2018-04-04 18:02:54.927 INFO: 清除文本框中已有字符: //*[@id='password']] | |
21 | +2018-04-04 18:02:55.080 INFO: 输入的字符是:essa123 | |
22 | +2018-04-04 18:03:02.619 ERROR: 1. | |
23 | +2018-04-04 18:03:02.666 INFO: 判断检查点是否存在 | |
24 | +2018-04-04 18:03:08.806 ERROR: 1. | ... | ... |
1 | +++ a/Log/20180404_180725.log | |
... | ... | @@ -0,0 +1,24 @@ |
1 | +2018-04-04 18:07:25.164 INFO: 开始从配置文件中选择浏览器 | |
2 | +2018-04-04 18:07:25.179 INFO: 所选择的浏览器类型为: Chrome | |
3 | +2018-04-04 18:07:25.179 INFO: 所测试的URL地址为: http://bpms.hotfix.gz.essa | |
4 | +2018-04-04 18:07:30.125 INFO: 正在启动Chrome浏览器 | |
5 | +2018-04-04 18:07:31.658 INFO: 窗口最大化 | |
6 | +2018-04-04 18:07:34.239 INFO: 打开URL: http://bpms.hotfix.gz.essa | |
7 | +2018-04-04 18:07:34.264 INFO: 设置隐性等待5 秒 | |
8 | +2018-04-04 18:07:34.359 INFO: 获取所要读取的文件 | |
9 | +2018-04-04 18:07:35.492 INFO: 文件为:.xlsx格式 | |
10 | +2018-04-04 18:07:35.508 INFO: 读取文件成功 | |
11 | +2018-04-04 18:07:35.738 INFO: 清除文本框中已有字符: //*[@id='username']] | |
12 | +2018-04-04 18:07:35.958 INFO: 输入的字符是:admin | |
13 | +2018-04-04 18:07:36.131 INFO: 清除文本框中已有字符: //*[@id='password']] | |
14 | +2018-04-04 18:07:36.282 INFO: 输入的字符是:essa123 | |
15 | +2018-04-04 18:07:44.055 ERROR: 1. | |
16 | +2018-04-04 18:07:44.117 INFO: 判断检查点是否存在 | |
17 | +2018-04-04 18:07:50.476 ERROR: 1. | |
18 | +2018-04-04 18:07:50.597 INFO: 清除文本框中已有字符: //*[@id='username']] | |
19 | +2018-04-04 18:07:50.764 INFO: 输入的字符是:linrong | |
20 | +2018-04-04 18:07:50.897 INFO: 清除文本框中已有字符: //*[@id='password']] | |
21 | +2018-04-04 18:07:51.013 INFO: 输入的字符是:essa123 | |
22 | +2018-04-04 18:07:58.679 ERROR: 1. | |
23 | +2018-04-04 18:07:58.742 INFO: 判断检查点是否存在 | |
24 | +2018-04-04 18:08:05.117 ERROR: 1. | ... | ... |
1 | +++ a/Log/20180404_181751.log | |
... | ... | @@ -0,0 +1,24 @@ |
1 | +2018-04-04 18:17:51.287 INFO: 开始从配置文件中选择浏览器 | |
2 | +2018-04-04 18:17:51.287 INFO: 所选择的浏览器类型为: Chrome | |
3 | +2018-04-04 18:17:51.287 INFO: 所测试的URL地址为: http://bpms.hotfix.gz.essa | |
4 | +2018-04-04 18:17:56.054 INFO: 正在启动Chrome浏览器 | |
5 | +2018-04-04 18:17:57.539 INFO: 窗口最大化 | |
6 | +2018-04-04 18:17:59.895 INFO: 打开URL: http://bpms.hotfix.gz.essa | |
7 | +2018-04-04 18:17:59.904 INFO: 设置隐性等待5 秒 | |
8 | +2018-04-04 18:17:59.968 INFO: 获取所要读取的文件 | |
9 | +2018-04-04 18:18:01.192 INFO: 文件为:.xlsx格式 | |
10 | +2018-04-04 18:18:01.197 INFO: 读取文件成功 | |
11 | +2018-04-04 18:18:01.403 INFO: 清除文本框中已有字符: //*[@id='username']] | |
12 | +2018-04-04 18:18:01.601 INFO: 输入的字符是:admin | |
13 | +2018-04-04 18:18:01.719 INFO: 清除文本框中已有字符: //*[@id='password']] | |
14 | +2018-04-04 18:18:01.885 INFO: 输入的字符是:essa123 | |
15 | +2018-04-04 18:18:09.927 ERROR: 1. | |
16 | +2018-04-04 18:18:09.989 INFO: 判断检查点是否存在 | |
17 | +2018-04-04 18:18:16.661 ERROR: 1. | |
18 | +2018-04-04 18:18:16.816 INFO: 清除文本框中已有字符: //*[@id='username']] | |
19 | +2018-04-04 18:18:16.986 INFO: 输入的字符是:linrong | |
20 | +2018-04-04 18:18:17.119 INFO: 清除文本框中已有字符: //*[@id='password']] | |
21 | +2018-04-04 18:18:17.299 INFO: 输入的字符是:essa123 | |
22 | +2018-04-04 18:18:24.192 ERROR: 1. | |
23 | +2018-04-04 18:18:24.239 INFO: 判断检查点是否存在 | |
24 | +2018-04-04 18:18:30.443 ERROR: 1. | ... | ... |
1 | +++ a/Log/20180404_182202.log | |
... | ... | @@ -0,0 +1,24 @@ |
1 | +2018-04-04 18:22:02.973 INFO: 开始从配置文件中选择浏览器 | |
2 | +2018-04-04 18:22:02.973 INFO: 所选择的浏览器类型为: Chrome | |
3 | +2018-04-04 18:22:02.973 INFO: 所测试的URL地址为: http://bpms.hotfix.gz.essa | |
4 | +2018-04-04 18:22:07.567 INFO: 正在启动Chrome浏览器 | |
5 | +2018-04-04 18:22:09.061 INFO: 窗口最大化 | |
6 | +2018-04-04 18:22:11.419 INFO: 打开URL: http://bpms.hotfix.gz.essa | |
7 | +2018-04-04 18:22:11.433 INFO: 设置隐性等待5 秒 | |
8 | +2018-04-04 18:22:11.505 INFO: 获取所要读取的文件 | |
9 | +2018-04-04 18:22:12.661 INFO: 文件为:.xlsx格式 | |
10 | +2018-04-04 18:22:12.676 INFO: 读取文件成功 | |
11 | +2018-04-04 18:22:12.880 INFO: 清除文本框中已有字符: //*[@id='username']] | |
12 | +2018-04-04 18:22:13.072 INFO: 输入的字符是:admin | |
13 | +2018-04-04 18:22:13.203 INFO: 清除文本框中已有字符: //*[@id='password']] | |
14 | +2018-04-04 18:22:13.343 INFO: 输入的字符是:essa123 | |
15 | +2018-04-04 18:22:15.888 INFO: 点击元素: | |
16 | +2018-04-04 18:22:16.741 INFO: 判断检查点是否存在 | |
17 | +2018-04-04 18:22:17.961 INFO: 点击元素: | |
18 | +2018-04-04 18:22:18.137 INFO: 清除文本框中已有字符: //*[@id='username']] | |
19 | +2018-04-04 18:22:18.300 INFO: 输入的字符是:linrong | |
20 | +2018-04-04 18:22:18.424 INFO: 清除文本框中已有字符: //*[@id='password']] | |
21 | +2018-04-04 18:22:18.573 INFO: 输入的字符是:essa123 | |
22 | +2018-04-04 18:22:20.958 INFO: 点击元素: | |
23 | +2018-04-04 18:22:21.494 INFO: 判断检查点是否存在 | |
24 | +2018-04-04 18:22:22.537 INFO: 点击元素: | ... | ... |
1 | +++ a/Log/20180404_182628.log | |
... | ... | @@ -0,0 +1,64 @@ |
1 | +2018-04-04 18:26:28.096 INFO: 开始从配置文件中选择浏览器 | |
2 | +2018-04-04 18:26:28.096 INFO: 所选择的浏览器类型为: Chrome | |
3 | +2018-04-04 18:26:28.096 INFO: 所测试的URL地址为: http://bpms.hotfix.gz.essa | |
4 | +2018-04-04 18:26:32.879 INFO: 正在启动Chrome浏览器 | |
5 | +2018-04-04 18:26:34.368 INFO: 窗口最大化 | |
6 | +2018-04-04 18:26:36.675 INFO: 打开URL: http://bpms.hotfix.gz.essa | |
7 | +2018-04-04 18:26:36.683 INFO: 设置隐性等待5 秒 | |
8 | +2018-04-04 18:26:36.767 INFO: 获取所要读取的文件 | |
9 | +2018-04-04 18:26:37.738 INFO: 文件为:.xlsx格式 | |
10 | +2018-04-04 18:26:37.755 INFO: 读取文件成功 | |
11 | +2018-04-04 18:26:37.947 INFO: 清除文本框中已有字符: //*[@id='username']] | |
12 | +2018-04-04 18:26:38.165 INFO: 输入的字符是:admin | |
13 | +2018-04-04 18:26:38.284 INFO: 清除文本框中已有字符: //*[@id='password']] | |
14 | +2018-04-04 18:26:38.429 INFO: 输入的字符是:essa123 | |
15 | +2018-04-04 18:26:46.175 ERROR: no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id='subBtn']"} | |
16 | + (Session info: chrome=65.0.3325.181) | |
17 | + (Driver info: chromedriver=2.37.543627 (63642262d9fb93fb4ab52398be4286d844092a5e),platform=Windows NT 10.0.10586 x86) (WARNING: The server did not provide any stacktrace information) | |
18 | +Command duration or timeout: 0 milliseconds | |
19 | +For documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html | |
20 | +Build info: version: '3.11.0', revision: 'e59cfb3', time: '2018-03-11T20:26:55.152Z' | |
21 | +System info: host: 'DESKTOP-NIGE62D', ip: '10.0.2.15', os.name: 'Windows 10', os.arch: 'x86', os.version: '10.0', java.version: '1.8.0_144' | |
22 | +Driver info: org.openqa.selenium.chrome.ChromeDriver | |
23 | +Capabilities {acceptInsecureCerts: false, acceptSslCerts: false, applicationCacheEnabled: false, browserConnectionEnabled: false, browserName: chrome, chrome: {chromedriverVersion: 2.37.543627 (63642262d9fb93..., userDataDir: C:\Users\jin\AppData\Local\...}, cssSelectorsEnabled: true, databaseEnabled: false, handlesAlerts: true, hasTouchScreen: false, javascriptEnabled: true, locationContextEnabled: true, mobileEmulationEnabled: false, nativeEvents: true, networkConnectionEnabled: false, pageLoadStrategy: normal, platform: XP, platformName: XP, rotatable: false, setWindowRect: true, takesHeapSnapshot: true, takesScreenshot: true, unexpectedAlertBehaviour: , unhandledPromptBehavior: , version: 65.0.3325.181, webStorageEnabled: true} | |
24 | +Session ID: 0541c0747091ae63f9836b34921c75e9 | |
25 | +*** Element info: {Using=xpath, value=//*[@id='subBtn']}. | |
26 | +2018-04-04 18:26:46.238 INFO: 判断检查点是否存在 | |
27 | +2018-04-04 18:26:52.519 ERROR: no such element: Unable to locate element: {"method":"xpath","selector":"//*[text()='退出']"} | |
28 | + (Session info: chrome=65.0.3325.181) | |
29 | + (Driver info: chromedriver=2.37.543627 (63642262d9fb93fb4ab52398be4286d844092a5e),platform=Windows NT 10.0.10586 x86) (WARNING: The server did not provide any stacktrace information) | |
30 | +Command duration or timeout: 0 milliseconds | |
31 | +For documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html | |
32 | +Build info: version: '3.11.0', revision: 'e59cfb3', time: '2018-03-11T20:26:55.152Z' | |
33 | +System info: host: 'DESKTOP-NIGE62D', ip: '10.0.2.15', os.name: 'Windows 10', os.arch: 'x86', os.version: '10.0', java.version: '1.8.0_144' | |
34 | +Driver info: org.openqa.selenium.chrome.ChromeDriver | |
35 | +Capabilities {acceptInsecureCerts: false, acceptSslCerts: false, applicationCacheEnabled: false, browserConnectionEnabled: false, browserName: chrome, chrome: {chromedriverVersion: 2.37.543627 (63642262d9fb93..., userDataDir: C:\Users\jin\AppData\Local\...}, cssSelectorsEnabled: true, databaseEnabled: false, handlesAlerts: true, hasTouchScreen: false, javascriptEnabled: true, locationContextEnabled: true, mobileEmulationEnabled: false, nativeEvents: true, networkConnectionEnabled: false, pageLoadStrategy: normal, platform: XP, platformName: XP, rotatable: false, setWindowRect: true, takesHeapSnapshot: true, takesScreenshot: true, unexpectedAlertBehaviour: , unhandledPromptBehavior: , version: 65.0.3325.181, webStorageEnabled: true} | |
36 | +Session ID: 0541c0747091ae63f9836b34921c75e9 | |
37 | +*** Element info: {Using=xpath, value=//*[text()='退出']}. | |
38 | +2018-04-04 18:26:52.683 INFO: 清除文本框中已有字符: //*[@id='username']] | |
39 | +2018-04-04 18:26:52.831 INFO: 输入的字符是:linrong | |
40 | +2018-04-04 18:26:52.939 INFO: 清除文本框中已有字符: //*[@id='password']] | |
41 | +2018-04-04 18:26:53.067 INFO: 输入的字符是:essa123 | |
42 | +2018-04-04 18:27:00.456 ERROR: no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id='subBtn']"} | |
43 | + (Session info: chrome=65.0.3325.181) | |
44 | + (Driver info: chromedriver=2.37.543627 (63642262d9fb93fb4ab52398be4286d844092a5e),platform=Windows NT 10.0.10586 x86) (WARNING: The server did not provide any stacktrace information) | |
45 | +Command duration or timeout: 0 milliseconds | |
46 | +For documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html | |
47 | +Build info: version: '3.11.0', revision: 'e59cfb3', time: '2018-03-11T20:26:55.152Z' | |
48 | +System info: host: 'DESKTOP-NIGE62D', ip: '10.0.2.15', os.name: 'Windows 10', os.arch: 'x86', os.version: '10.0', java.version: '1.8.0_144' | |
49 | +Driver info: org.openqa.selenium.chrome.ChromeDriver | |
50 | +Capabilities {acceptInsecureCerts: false, acceptSslCerts: false, applicationCacheEnabled: false, browserConnectionEnabled: false, browserName: chrome, chrome: {chromedriverVersion: 2.37.543627 (63642262d9fb93..., userDataDir: C:\Users\jin\AppData\Local\...}, cssSelectorsEnabled: true, databaseEnabled: false, handlesAlerts: true, hasTouchScreen: false, javascriptEnabled: true, locationContextEnabled: true, mobileEmulationEnabled: false, nativeEvents: true, networkConnectionEnabled: false, pageLoadStrategy: normal, platform: XP, platformName: XP, rotatable: false, setWindowRect: true, takesHeapSnapshot: true, takesScreenshot: true, unexpectedAlertBehaviour: , unhandledPromptBehavior: , version: 65.0.3325.181, webStorageEnabled: true} | |
51 | +Session ID: 0541c0747091ae63f9836b34921c75e9 | |
52 | +*** Element info: {Using=xpath, value=//*[@id='subBtn']}. | |
53 | +2018-04-04 18:27:00.550 INFO: 判断检查点是否存在 | |
54 | +2018-04-04 18:27:06.731 ERROR: no such element: Unable to locate element: {"method":"xpath","selector":"//*[text()='退出']"} | |
55 | + (Session info: chrome=65.0.3325.181) | |
56 | + (Driver info: chromedriver=2.37.543627 (63642262d9fb93fb4ab52398be4286d844092a5e),platform=Windows NT 10.0.10586 x86) (WARNING: The server did not provide any stacktrace information) | |
57 | +Command duration or timeout: 0 milliseconds | |
58 | +For documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html | |
59 | +Build info: version: '3.11.0', revision: 'e59cfb3', time: '2018-03-11T20:26:55.152Z' | |
60 | +System info: host: 'DESKTOP-NIGE62D', ip: '10.0.2.15', os.name: 'Windows 10', os.arch: 'x86', os.version: '10.0', java.version: '1.8.0_144' | |
61 | +Driver info: org.openqa.selenium.chrome.ChromeDriver | |
62 | +Capabilities {acceptInsecureCerts: false, acceptSslCerts: false, applicationCacheEnabled: false, browserConnectionEnabled: false, browserName: chrome, chrome: {chromedriverVersion: 2.37.543627 (63642262d9fb93..., userDataDir: C:\Users\jin\AppData\Local\...}, cssSelectorsEnabled: true, databaseEnabled: false, handlesAlerts: true, hasTouchScreen: false, javascriptEnabled: true, locationContextEnabled: true, mobileEmulationEnabled: false, nativeEvents: true, networkConnectionEnabled: false, pageLoadStrategy: normal, platform: XP, platformName: XP, rotatable: false, setWindowRect: true, takesHeapSnapshot: true, takesScreenshot: true, unexpectedAlertBehaviour: , unhandledPromptBehavior: , version: 65.0.3325.181, webStorageEnabled: true} | |
63 | +Session ID: 0541c0747091ae63f9836b34921c75e9 | |
64 | +*** Element info: {Using=xpath, value=//*[text()='退出']}. | ... | ... |
1 | +++ a/Log/20180404_182825.log | |
... | ... | @@ -0,0 +1,24 @@ |
1 | +2018-04-04 18:28:25.143 INFO: 开始从配置文件中选择浏览器 | |
2 | +2018-04-04 18:28:25.143 INFO: 所选择的浏览器类型为: Chrome | |
3 | +2018-04-04 18:28:25.143 INFO: 所测试的URL地址为: http://bpms.hotfix.gz.essa | |
4 | +2018-04-04 18:28:29.737 INFO: 正在启动Chrome浏览器 | |
5 | +2018-04-04 18:28:31.255 INFO: 窗口最大化 | |
6 | +2018-04-04 18:28:33.778 INFO: 打开URL: http://bpms.hotfix.gz.essa | |
7 | +2018-04-04 18:28:33.801 INFO: 设置隐性等待5 秒 | |
8 | +2018-04-04 18:28:33.873 INFO: 获取所要读取的文件 | |
9 | +2018-04-04 18:28:34.831 INFO: 文件为:.xlsx格式 | |
10 | +2018-04-04 18:28:34.848 INFO: 读取文件成功 | |
11 | +2018-04-04 18:28:35.104 INFO: 清除文本框中已有字符: //*[@id='username']] | |
12 | +2018-04-04 18:28:35.211 INFO: 输入的字符是:admin | |
13 | +2018-04-04 18:28:35.393 INFO: 清除文本框中已有字符: //*[@id='password']] | |
14 | +2018-04-04 18:28:35.526 INFO: 输入的字符是:essa123 | |
15 | +2018-04-04 18:28:43.581 ERROR: 1. | |
16 | +2018-04-04 18:28:43.659 INFO: 判断检查点是否存在 | |
17 | +2018-04-04 18:28:50.768 ERROR: 1. | |
18 | +2018-04-04 18:28:50.974 INFO: 清除文本框中已有字符: //*[@id='username']] | |
19 | +2018-04-04 18:28:51.152 INFO: 输入的字符是:linrong | |
20 | +2018-04-04 18:28:51.279 INFO: 清除文本框中已有字符: //*[@id='password']] | |
21 | +2018-04-04 18:28:51.411 INFO: 输入的字符是:essa123 | |
22 | +2018-04-04 18:28:58.956 ERROR: 1. | |
23 | +2018-04-04 18:28:59.019 INFO: 判断检查点是否存在 | |
24 | +2018-04-04 18:29:05.096 ERROR: 1. | ... | ... |
1 | +++ a/Log/20180404_182939.log | |
... | ... | @@ -0,0 +1,24 @@ |
1 | +2018-04-04 18:29:39.581 INFO: 开始从配置文件中选择浏览器 | |
2 | +2018-04-04 18:29:39.590 INFO: 所选择的浏览器类型为: Chrome | |
3 | +2018-04-04 18:29:39.590 INFO: 所测试的URL地址为: http://bpms.hotfix.gz.essa | |
4 | +2018-04-04 18:29:44.097 INFO: 正在启动Chrome浏览器 | |
5 | +2018-04-04 18:29:45.578 INFO: 窗口最大化 | |
6 | +2018-04-04 18:29:48.081 INFO: 打开URL: http://bpms.hotfix.gz.essa | |
7 | +2018-04-04 18:29:48.108 INFO: 设置隐性等待5 秒 | |
8 | +2018-04-04 18:29:48.175 INFO: 获取所要读取的文件 | |
9 | +2018-04-04 18:29:49.252 INFO: 文件为:.xlsx格式 | |
10 | +2018-04-04 18:29:49.268 INFO: 读取文件成功 | |
11 | +2018-04-04 18:29:49.528 INFO: 清除文本框中已有字符: //*[@id='username']] | |
12 | +2018-04-04 18:29:49.898 INFO: 输入的字符是:admin | |
13 | +2018-04-04 18:29:50.157 INFO: 清除文本框中已有字符: //*[@id='password']] | |
14 | +2018-04-04 18:29:50.605 INFO: 输入的字符是:essa123 | |
15 | +2018-04-04 18:29:50.724 INFO: 点击元素: //*[@id='subBtn']] | |
16 | +2018-04-04 18:29:55.207 INFO: 判断检查点是否存在 | |
17 | +2018-04-04 18:29:55.252 INFO: 点击元素: //*[text()='退出']] | |
18 | +2018-04-04 18:29:56.969 INFO: 清除文本框中已有字符: //*[@id='username']] | |
19 | +2018-04-04 18:29:57.122 INFO: 输入的字符是:linrong | |
20 | +2018-04-04 18:29:57.253 INFO: 清除文本框中已有字符: //*[@id='password']] | |
21 | +2018-04-04 18:29:57.389 INFO: 输入的字符是:essa123 | |
22 | +2018-04-04 18:29:57.442 INFO: 点击元素: //*[@id='subBtn']] | |
23 | +2018-04-04 18:29:59.977 INFO: 判断检查点是否存在 | |
24 | +2018-04-04 18:30:00.021 INFO: 点击元素: //*[text()='退出']] | ... | ... |
1 | +++ a/Log/20180410_114626.log | |
... | ... | @@ -0,0 +1,24 @@ |
1 | +2018-04-10 11:46:26.812 INFO: 开始从配置文件中选择浏览器 | |
2 | +2018-04-10 11:46:26.832 INFO: 所选择的浏览器类型为: Chrome | |
3 | +2018-04-10 11:46:26.833 INFO: 所测试的URL地址为: http://bpms.hotfix.gz.essa | |
4 | +2018-04-10 11:46:33.684 INFO: 正在启动Chrome浏览器 | |
5 | +2018-04-10 11:46:35.332 INFO: 窗口最大化 | |
6 | +2018-04-10 11:46:38.066 INFO: 打开URL: http://bpms.hotfix.gz.essa | |
7 | +2018-04-10 11:46:38.087 INFO: 设置隐性等待5 秒 | |
8 | +2018-04-10 11:46:38.330 INFO: 获取所要读取的文件 | |
9 | +2018-04-10 11:46:39.784 INFO: 文件为:.xlsx格式 | |
10 | +2018-04-10 11:46:39.798 INFO: 读取文件成功 | |
11 | +2018-04-10 11:46:40.121 INFO: 清除文本框中已有字符: //*[@id='username']] | |
12 | +2018-04-10 11:46:40.341 INFO: 输入的字符是:admin | |
13 | +2018-04-10 11:46:40.551 INFO: 清除文本框中已有字符: //*[@id='password']] | |
14 | +2018-04-10 11:46:40.679 INFO: 输入的字符是:essa123 | |
15 | +2018-04-10 11:46:40.747 INFO: 点击元素: //*[@id='subBtn']] | |
16 | +2018-04-10 11:46:45.183 INFO: 判断检查点是否存在 | |
17 | +2018-04-10 11:46:45.234 INFO: 点击元素: //*[text()='退出']] | |
18 | +2018-04-10 11:46:46.921 INFO: 清除文本框中已有字符: //*[@id='username']] | |
19 | +2018-04-10 11:46:47.220 INFO: 输入的字符是:linrong | |
20 | +2018-04-10 11:46:47.353 INFO: 清除文本框中已有字符: //*[@id='password']] | |
21 | +2018-04-10 11:46:47.585 INFO: 输入的字符是:essa123 | |
22 | +2018-04-10 11:46:47.643 INFO: 点击元素: //*[@id='subBtn']] | |
23 | +2018-04-10 11:46:50.805 INFO: 判断检查点是否存在 | |
24 | +2018-04-10 11:46:50.854 INFO: 点击元素: //*[text()='退出']] | ... | ... |
1 | +++ a/Log/20180410_115209.log | |
... | ... | @@ -0,0 +1,24 @@ |
1 | +2018-04-10 11:52:09.045 INFO: 开始从配置文件中选择浏览器 | |
2 | +2018-04-10 11:52:09.051 INFO: 所选择的浏览器类型为: Chrome | |
3 | +2018-04-10 11:52:09.051 INFO: 所测试的URL地址为: http://bpms.hotfix.gz.essa | |
4 | +2018-04-10 11:52:17.495 INFO: 正在启动Chrome浏览器 | |
5 | +2018-04-10 11:52:18.986 INFO: 窗口最大化 | |
6 | +2018-04-10 11:52:21.976 INFO: 打开URL: http://bpms.hotfix.gz.essa | |
7 | +2018-04-10 11:52:22.008 INFO: 设置隐性等待5 秒 | |
8 | +2018-04-10 11:52:22.111 INFO: 获取所要读取的文件 | |
9 | +2018-04-10 11:52:23.518 INFO: 文件为:.xlsx格式 | |
10 | +2018-04-10 11:52:23.539 INFO: 读取文件成功 | |
11 | +2018-04-10 11:52:23.851 INFO: 清除文本框中已有字符: //*[@id='username']] | |
12 | +2018-04-10 11:52:24.393 INFO: 输入的字符是:admin | |
13 | +2018-04-10 11:52:24.523 INFO: 清除文本框中已有字符: //*[@id='password']] | |
14 | +2018-04-10 11:52:24.711 INFO: 输入的字符是:essa123 | |
15 | +2018-04-10 11:52:24.786 INFO: 点击元素: //*[@id='subBtn']] | |
16 | +2018-04-10 11:52:28.838 INFO: 判断检查点是否存在 | |
17 | +2018-04-10 11:52:28.906 INFO: 点击元素: //*[text()='退出']] | |
18 | +2018-04-10 11:52:30.574 INFO: 清除文本框中已有字符: //*[@id='username']] | |
19 | +2018-04-10 11:52:30.743 INFO: 输入的字符是:linrong | |
20 | +2018-04-10 11:52:30.861 INFO: 清除文本框中已有字符: //*[@id='password']] | |
21 | +2018-04-10 11:52:31.027 INFO: 输入的字符是:essa123 | |
22 | +2018-04-10 11:52:31.079 INFO: 点击元素: //*[@id='subBtn']] | |
23 | +2018-04-10 11:52:34.844 INFO: 判断检查点是否存在 | |
24 | +2018-04-10 11:52:34.927 INFO: 点击元素: //*[text()='退出']] | ... | ... |
1 | +++ a/Log/20180410_154101.log | |
... | ... | @@ -0,0 +1,24 @@ |
1 | +2018-04-10 15:41:01.609 INFO: 开始从配置文件中选择浏览器 | |
2 | +2018-04-10 15:41:01.613 INFO: 所选择的浏览器类型为: Chrome | |
3 | +2018-04-10 15:41:01.613 INFO: 所测试的URL地址为: http://bpms.hotfix.gz.essa | |
4 | +2018-04-10 15:41:08.871 INFO: 正在启动Chrome浏览器 | |
5 | +2018-04-10 15:41:10.371 INFO: 窗口最大化 | |
6 | +2018-04-10 15:41:13.046 INFO: 打开URL: http://bpms.hotfix.gz.essa | |
7 | +2018-04-10 15:41:13.109 INFO: 设置隐性等待5 秒 | |
8 | +2018-04-10 15:41:13.206 INFO: 获取所要读取的文件 | |
9 | +2018-04-10 15:41:14.652 INFO: 文件为:.xlsx格式 | |
10 | +2018-04-10 15:41:14.666 INFO: 读取文件成功 | |
11 | +2018-04-10 15:41:14.952 INFO: 清除文本框中已有字符: //*[@id='username']] | |
12 | +2018-04-10 15:41:15.127 INFO: 输入的字符是:admin | |
13 | +2018-04-10 15:41:15.285 INFO: 清除文本框中已有字符: //*[@id='password']] | |
14 | +2018-04-10 15:41:15.433 INFO: 输入的字符是:essa123 | |
15 | +2018-04-10 15:41:15.504 INFO: 点击元素: //*[@id='subBtn']] | |
16 | +2018-04-10 15:41:19.096 INFO: 判断检查点是否存在 | |
17 | +2018-04-10 15:41:19.148 INFO: 点击元素: //*[text()='退出']] | |
18 | +2018-04-10 15:41:20.743 INFO: 清除文本框中已有字符: //*[@id='username']] | |
19 | +2018-04-10 15:41:20.975 INFO: 输入的字符是:linrong | |
20 | +2018-04-10 15:41:21.084 INFO: 清除文本框中已有字符: //*[@id='password']] | |
21 | +2018-04-10 15:41:21.230 INFO: 输入的字符是:essa123 | |
22 | +2018-04-10 15:41:21.289 INFO: 点击元素: //*[@id='subBtn']] | |
23 | +2018-04-10 15:41:24.290 INFO: 判断检查点是否存在 | |
24 | +2018-04-10 15:41:24.330 INFO: 点击元素: //*[text()='退出']] | ... | ... |
1 | +++ a/Log/20180410_154254.log | |
... | ... | @@ -0,0 +1,24 @@ |
1 | +2018-04-10 15:42:54.513 INFO: 开始从配置文件中选择浏览器 | |
2 | +2018-04-10 15:42:54.516 INFO: 所选择的浏览器类型为: Chrome | |
3 | +2018-04-10 15:42:54.516 INFO: 所测试的URL地址为: http://bpms.hotfix.gz.essa | |
4 | +2018-04-10 15:42:59.124 INFO: 正在启动Chrome浏览器 | |
5 | +2018-04-10 15:43:00.731 INFO: 窗口最大化 | |
6 | +2018-04-10 15:43:03.416 INFO: 打开URL: http://bpms.hotfix.gz.essa | |
7 | +2018-04-10 15:43:03.459 INFO: 设置隐性等待5 秒 | |
8 | +2018-04-10 15:43:03.555 INFO: 获取所要读取的文件 | |
9 | +2018-04-10 15:43:04.809 INFO: 文件为:.xlsx格式 | |
10 | +2018-04-10 15:43:04.822 INFO: 读取文件成功 | |
11 | +2018-04-10 15:43:05.022 INFO: 清除文本框中已有字符: //*[@id='username']] | |
12 | +2018-04-10 15:43:05.218 INFO: 输入的字符是:admin | |
13 | +2018-04-10 15:43:05.411 INFO: 清除文本框中已有字符: //*[@id='password']] | |
14 | +2018-04-10 15:43:05.557 INFO: 输入的字符是:essa123 | |
15 | +2018-04-10 15:43:05.624 INFO: 点击元素: //*[@id='subBtn']] | |
16 | +2018-04-10 15:43:09.387 INFO: 判断检查点是否存在 | |
17 | +2018-04-10 15:43:09.445 INFO: 点击元素: //*[text()='退出']] | |
18 | +2018-04-10 15:43:11.406 INFO: 清除文本框中已有字符: //*[@id='username']] | |
19 | +2018-04-10 15:43:11.571 INFO: 输入的字符是:linrong | |
20 | +2018-04-10 15:43:11.737 INFO: 清除文本框中已有字符: //*[@id='password']] | |
21 | +2018-04-10 15:43:11.884 INFO: 输入的字符是:essa123 | |
22 | +2018-04-10 15:43:11.951 INFO: 点击元素: //*[@id='subBtn']] | |
23 | +2018-04-10 15:43:15.366 INFO: 判断检查点是否存在 | |
24 | +2018-04-10 15:43:15.426 INFO: 点击元素: //*[text()='退出']] | ... | ... |
1 | +++ a/Log/20180410_154626.log | |
... | ... | @@ -0,0 +1,24 @@ |
1 | +2018-04-10 15:46:26.131 INFO: 开始从配置文件中选择浏览器 | |
2 | +2018-04-10 15:46:26.134 INFO: 所选择的浏览器类型为: Chrome | |
3 | +2018-04-10 15:46:26.135 INFO: 所测试的URL地址为: http://bpms.hotfix.gz.essa | |
4 | +2018-04-10 15:46:30.921 INFO: 正在启动Chrome浏览器 | |
5 | +2018-04-10 15:46:32.374 INFO: 窗口最大化 | |
6 | +2018-04-10 15:46:34.565 INFO: 打开URL: http://bpms.hotfix.gz.essa | |
7 | +2018-04-10 15:46:34.585 INFO: 设置隐性等待5 秒 | |
8 | +2018-04-10 15:46:34.666 INFO: 获取所要读取的文件 | |
9 | +2018-04-10 15:46:35.742 INFO: 文件为:.xlsx格式 | |
10 | +2018-04-10 15:46:35.757 INFO: 读取文件成功 | |
11 | +2018-04-10 15:46:35.937 INFO: 清除文本框中已有字符: //*[@id='username']] | |
12 | +2018-04-10 15:46:36.119 INFO: 输入的字符是:admin | |
13 | +2018-04-10 15:46:36.264 INFO: 清除文本框中已有字符: //*[@id='password']] | |
14 | +2018-04-10 15:46:36.388 INFO: 输入的字符是:essa123 | |
15 | +2018-04-10 15:46:36.447 INFO: 点击元素: //*[@id='subBtn']] | |
16 | +2018-04-10 15:46:39.735 INFO: 判断检查点是否存在 | |
17 | +2018-04-10 15:46:39.780 INFO: 点击元素: //*[text()='退出']] | |
18 | +2018-04-10 15:46:41.144 INFO: 清除文本框中已有字符: //*[@id='username']] | |
19 | +2018-04-10 15:46:41.326 INFO: 输入的字符是:linrong | |
20 | +2018-04-10 15:46:41.434 INFO: 清除文本框中已有字符: //*[@id='password']] | |
21 | +2018-04-10 15:46:41.583 INFO: 输入的字符是:essa123 | |
22 | +2018-04-10 15:46:41.654 INFO: 点击元素: //*[@id='subBtn']] | |
23 | +2018-04-10 15:46:45.982 INFO: 判断检查点是否存在 | |
24 | +2018-04-10 15:46:46.023 INFO: 点击元素: //*[text()='退出']] | ... | ... |
1 | +++ a/Log/20180410_160850.log | |
... | ... | @@ -0,0 +1,24 @@ |
1 | +2018-04-10 16:08:50.875 INFO: 开始从配置文件中选择浏览器 | |
2 | +2018-04-10 16:08:50.879 INFO: 所选择的浏览器类型为: Chrome | |
3 | +2018-04-10 16:08:50.879 INFO: 所测试的URL地址为: http://bpms.hotfix.gz.essa | |
4 | +2018-04-10 16:08:55.660 INFO: 正在启动Chrome浏览器 | |
5 | +2018-04-10 16:08:57.142 INFO: 窗口最大化 | |
6 | +2018-04-10 16:08:59.424 INFO: 打开URL: http://bpms.hotfix.gz.essa | |
7 | +2018-04-10 16:08:59.447 INFO: 设置隐性等待5 秒 | |
8 | +2018-04-10 16:08:59.545 INFO: 获取所要读取的文件 | |
9 | +2018-04-10 16:09:00.575 INFO: 文件为:.xlsx格式 | |
10 | +2018-04-10 16:09:00.589 INFO: 读取文件成功 | |
11 | +2018-04-10 16:09:00.796 INFO: 清除文本框中已有字符: //*[@id='username']] | |
12 | +2018-04-10 16:09:00.974 INFO: 输入的字符是:admin | |
13 | +2018-04-10 16:09:01.113 INFO: 清除文本框中已有字符: //*[@id='password']] | |
14 | +2018-04-10 16:09:01.270 INFO: 输入的字符是:essa123 | |
15 | +2018-04-10 16:09:01.330 INFO: 点击元素: //*[@id='subBtn']] | |
16 | +2018-04-10 16:09:04.632 INFO: 判断检查点是否存在 | |
17 | +2018-04-10 16:09:04.682 INFO: 点击元素: //*[text()='退出']] | |
18 | +2018-04-10 16:09:05.923 INFO: 清除文本框中已有字符: //*[@id='username']] | |
19 | +2018-04-10 16:09:06.078 INFO: 输入的字符是:linrong | |
20 | +2018-04-10 16:09:06.220 INFO: 清除文本框中已有字符: //*[@id='password']] | |
21 | +2018-04-10 16:09:06.360 INFO: 输入的字符是:essa123 | |
22 | +2018-04-10 16:09:06.420 INFO: 点击元素: //*[@id='subBtn']] | |
23 | +2018-04-10 16:09:09.060 INFO: 判断检查点是否存在 | |
24 | +2018-04-10 16:09:09.103 INFO: 点击元素: //*[text()='退出']] | ... | ... |
1 | +++ a/Log/20180410_161331.log | |
... | ... | @@ -0,0 +1,24 @@ |
1 | +2018-04-10 16:13:31.810 INFO: 开始从配置文件中选择浏览器 | |
2 | +2018-04-10 16:13:31.817 INFO: 所选择的浏览器类型为: Chrome | |
3 | +2018-04-10 16:13:31.817 INFO: 所测试的URL地址为: http://bpms.hotfix.gz.essa | |
4 | +2018-04-10 16:13:36.357 INFO: 正在启动Chrome浏览器 | |
5 | +2018-04-10 16:13:37.841 INFO: 窗口最大化 | |
6 | +2018-04-10 16:13:40.030 INFO: 打开URL: http://bpms.hotfix.gz.essa | |
7 | +2018-04-10 16:13:40.050 INFO: 设置隐性等待5 秒 | |
8 | +2018-04-10 16:13:40.142 INFO: 获取所要读取的文件 | |
9 | +2018-04-10 16:13:41.185 INFO: 文件为:.xlsx格式 | |
10 | +2018-04-10 16:13:41.216 INFO: 读取文件成功 | |
11 | +2018-04-10 16:13:41.416 INFO: 清除文本框中已有字符: //*[@id='username']] | |
12 | +2018-04-10 16:13:41.584 INFO: 输入的字符是:admin | |
13 | +2018-04-10 16:13:41.717 INFO: 清除文本框中已有字符: //*[@id='password']] | |
14 | +2018-04-10 16:13:41.846 INFO: 输入的字符是:essa123 | |
15 | +2018-04-10 16:13:41.906 INFO: 点击元素: //*[@id='subBtn']] | |
16 | +2018-04-10 16:13:45.022 INFO: 判断检查点是否存在 | |
17 | +2018-04-10 16:13:45.091 INFO: 点击元素: //*[text()='退出']] | |
18 | +2018-04-10 16:13:46.348 INFO: 清除文本框中已有字符: //*[@id='username']] | |
19 | +2018-04-10 16:13:46.500 INFO: 输入的字符是:linrong | |
20 | +2018-04-10 16:13:46.661 INFO: 清除文本框中已有字符: //*[@id='password']] | |
21 | +2018-04-10 16:13:46.787 INFO: 输入的字符是:essa123 | |
22 | +2018-04-10 16:13:46.821 INFO: 点击元素: //*[@id='subBtn']] | |
23 | +2018-04-10 16:13:49.483 INFO: 判断检查点是否存在 | |
24 | +2018-04-10 16:13:49.561 INFO: 点击元素: //*[text()='退出']] | ... | ... |
1 | +++ a/Log/20180410_161546.log | |
... | ... | @@ -0,0 +1,24 @@ |
1 | +2018-04-10 16:15:46.528 INFO: 开始从配置文件中选择浏览器 | |
2 | +2018-04-10 16:15:46.528 INFO: 所选择的浏览器类型为: Chrome | |
3 | +2018-04-10 16:15:46.528 INFO: 所测试的URL地址为: http://bpms.hotfix.gz.essa | |
4 | +2018-04-10 16:15:51.449 INFO: 正在启动Chrome浏览器 | |
5 | +2018-04-10 16:15:52.935 INFO: 窗口最大化 | |
6 | +2018-04-10 16:15:55.414 INFO: 打开URL: http://bpms.hotfix.gz.essa | |
7 | +2018-04-10 16:15:55.429 INFO: 设置隐性等待5 秒 | |
8 | +2018-04-10 16:15:55.499 INFO: 获取所要读取的文件 | |
9 | +2018-04-10 16:15:56.465 INFO: 文件为:.xlsx格式 | |
10 | +2018-04-10 16:15:56.481 INFO: 读取文件成功 | |
11 | +2018-04-10 16:15:56.681 INFO: 清除文本框中已有字符: //*[@id='username']] | |
12 | +2018-04-10 16:15:56.912 INFO: 输入的字符是:admin | |
13 | +2018-04-10 16:15:57.059 INFO: 清除文本框中已有字符: //*[@id='password']] | |
14 | +2018-04-10 16:15:57.194 INFO: 输入的字符是:essa123 | |
15 | +2018-04-10 16:15:57.284 INFO: 点击元素: //*[@id='subBtn']] | |
16 | +2018-04-10 16:16:00.655 INFO: 判断检查点是否存在 | |
17 | +2018-04-10 16:16:00.700 INFO: 点击元素: //*[text()='退出']] | |
18 | +2018-04-10 16:16:02.304 INFO: 清除文本框中已有字符: //*[@id='username']] | |
19 | +2018-04-10 16:16:02.570 INFO: 输入的字符是:linrong | |
20 | +2018-04-10 16:16:02.748 INFO: 清除文本框中已有字符: //*[@id='password']] | |
21 | +2018-04-10 16:16:02.893 INFO: 输入的字符是:essa123 | |
22 | +2018-04-10 16:16:02.947 INFO: 点击元素: //*[@id='subBtn']] | |
23 | +2018-04-10 16:16:05.745 INFO: 判断检查点是否存在 | |
24 | +2018-04-10 16:16:05.795 INFO: 点击元素: //*[text()='退出']] | ... | ... |
1 | +++ a/Log/20180410_175527.log | |
... | ... | @@ -0,0 +1,7 @@ |
1 | +2018-04-10 17:55:27.867 INFO: 开始从配置文件中选择浏览器 | |
2 | +2018-04-10 17:55:27.877 INFO: 所选择的浏览器类型为: Chrome | |
3 | +2018-04-10 17:55:27.880 INFO: 所测试的URL地址为: http://bpms.hotfix.gz.essa | |
4 | +2018-04-10 17:55:37.543 INFO: 正在启动Chrome浏览器 | |
5 | +2018-04-10 17:55:39.301 INFO: 获取所要读取的文件 | |
6 | +2018-04-10 17:55:41.485 INFO: 文件为:.xlsx格式 | |
7 | +2018-04-10 17:55:41.504 INFO: 读取文件成功 | ... | ... |
1 | +++ a/Log/20180410_175644.log | |
... | ... | @@ -0,0 +1,24 @@ |
1 | +2018-04-10 17:56:44.387 INFO: 开始从配置文件中选择浏览器 | |
2 | +2018-04-10 17:56:44.387 INFO: 所选择的浏览器类型为: Chrome | |
3 | +2018-04-10 17:56:44.387 INFO: 所测试的URL地址为: http://bpms.hotfix.gz.essa | |
4 | +2018-04-10 17:56:50.167 INFO: 正在启动Chrome浏览器 | |
5 | +2018-04-10 17:56:51.692 INFO: 窗口最大化 | |
6 | +2018-04-10 17:56:55.618 INFO: 打开URL: http://bpms.hotfix.gz.essa | |
7 | +2018-04-10 17:56:55.635 INFO: 设置隐性等待5 秒 | |
8 | +2018-04-10 17:56:55.714 INFO: 获取所要读取的文件 | |
9 | +2018-04-10 17:56:57.011 INFO: 文件为:.xlsx格式 | |
10 | +2018-04-10 17:56:57.045 INFO: 读取文件成功 | |
11 | +2018-04-10 17:56:57.392 INFO: 清除文本框中已有字符: //*[@id='username']] | |
12 | +2018-04-10 17:56:57.581 INFO: 输入的字符是:admin | |
13 | +2018-04-10 17:56:57.727 INFO: 清除文本框中已有字符: //*[@id='password']] | |
14 | +2018-04-10 17:56:57.882 INFO: 输入的字符是:essa123 | |
15 | +2018-04-10 17:56:57.946 INFO: 点击元素: //*[@id='subBtn']] | |
16 | +2018-04-10 17:57:02.890 INFO: 判断检查点是否存在 | |
17 | +2018-04-10 17:57:02.964 INFO: 点击元素: //*[text()='退出']] | |
18 | +2018-04-10 17:57:04.630 INFO: 清除文本框中已有字符: //*[@id='username']] | |
19 | +2018-04-10 17:57:04.822 INFO: 输入的字符是:linrong | |
20 | +2018-04-10 17:57:04.960 INFO: 清除文本框中已有字符: //*[@id='password']] | |
21 | +2018-04-10 17:57:05.162 INFO: 输入的字符是:essa123 | |
22 | +2018-04-10 17:57:05.215 INFO: 点击元素: //*[@id='subBtn']] | |
23 | +2018-04-10 17:57:09.716 INFO: 判断检查点是否存在 | |
24 | +2018-04-10 17:57:09.767 INFO: 点击元素: //*[text()='退出']] | ... | ... |
1 | +++ a/Log/20180410_181116.log | |
... | ... | @@ -0,0 +1,24 @@ |
1 | +2018-04-10 18:11:16.428 INFO: 开始从配置文件中选择浏览器 | |
2 | +2018-04-10 18:11:16.428 INFO: 所选择的浏览器类型为: Chrome | |
3 | +2018-04-10 18:11:16.428 INFO: 所测试的URL地址为: http://bpms.hotfix.gz.essa | |
4 | +2018-04-10 18:11:21.055 INFO: 正在启动Chrome浏览器 | |
5 | +2018-04-10 18:11:22.503 INFO: 窗口最大化 | |
6 | +2018-04-10 18:11:25.643 INFO: 打开URL: http://bpms.hotfix.gz.essa | |
7 | +2018-04-10 18:11:25.667 INFO: 设置隐性等待5 秒 | |
8 | +2018-04-10 18:11:25.776 INFO: 获取所要读取的文件 | |
9 | +2018-04-10 18:11:27.022 INFO: 文件为:.xlsx格式 | |
10 | +2018-04-10 18:11:27.053 INFO: 读取文件成功 | |
11 | +2018-04-10 18:11:27.299 INFO: 清除文本框中已有字符: //*[@id='username']] | |
12 | +2018-04-10 18:11:27.440 INFO: 输入的字符是:admin | |
13 | +2018-04-10 18:11:27.566 INFO: 清除文本框中已有字符: //*[@id='password']] | |
14 | +2018-04-10 18:11:27.690 INFO: 输入的字符是:essa123 | |
15 | +2018-04-10 18:11:27.743 INFO: 点击元素: //*[@id='subBtn']] | |
16 | +2018-04-10 18:11:31.415 INFO: 判断检查点是否存在 | |
17 | +2018-04-10 18:11:31.459 INFO: 点击元素: //*[text()='退出']] | |
18 | +2018-04-10 18:11:32.812 INFO: 清除文本框中已有字符: //*[@id='username']] | |
19 | +2018-04-10 18:11:32.956 INFO: 输入的字符是:linrong | |
20 | +2018-04-10 18:11:33.048 INFO: 清除文本框中已有字符: //*[@id='password']] | |
21 | +2018-04-10 18:11:33.169 INFO: 输入的字符是:essa123 | |
22 | +2018-04-10 18:11:33.214 INFO: 点击元素: //*[@id='subBtn']] | |
23 | +2018-04-10 18:11:36.652 INFO: 判断检查点是否存在 | |
24 | +2018-04-10 18:11:36.694 INFO: 点击元素: //*[text()='退出']] | ... | ... |
1 | +++ a/Log/20180410_181617.log | |
... | ... | @@ -0,0 +1,24 @@ |
1 | +2018-04-10 18:16:17.785 INFO: 开始从配置文件中选择浏览器 | |
2 | +2018-04-10 18:16:17.785 INFO: 所选择的浏览器类型为: Chrome | |
3 | +2018-04-10 18:16:17.785 INFO: 所测试的URL地址为: http://bpms.hotfix.gz.essa | |
4 | +2018-04-10 18:16:24.145 INFO: 正在启动Chrome浏览器 | |
5 | +2018-04-10 18:16:25.850 INFO: 窗口最大化 | |
6 | +2018-04-10 18:16:31.197 INFO: 打开URL: http://bpms.hotfix.gz.essa | |
7 | +2018-04-10 18:16:31.239 INFO: 设置隐性等待5 秒 | |
8 | +2018-04-10 18:16:31.333 INFO: 获取所要读取的文件 | |
9 | +2018-04-10 18:16:33.457 INFO: 文件为:.xlsx格式 | |
10 | +2018-04-10 18:16:33.520 INFO: 读取文件成功 | |
11 | +2018-04-10 18:16:33.822 INFO: 清除文本框中已有字符: //*[@id='username']] | |
12 | +2018-04-10 18:16:34.081 INFO: 输入的字符是:admin | |
13 | +2018-04-10 18:16:34.304 INFO: 清除文本框中已有字符: //*[@id='password']] | |
14 | +2018-04-10 18:16:34.535 INFO: 输入的字符是:essa123 | |
15 | +2018-04-10 18:16:34.629 INFO: 点击元素: //*[@id='subBtn']] | |
16 | +2018-04-10 18:16:41.802 INFO: 判断检查点是否存在 | |
17 | +2018-04-10 18:16:41.895 INFO: 点击元素: //*[text()='退出']] | |
18 | +2018-04-10 18:16:43.959 INFO: 清除文本框中已有字符: //*[@id='username']] | |
19 | +2018-04-10 18:16:44.263 INFO: 输入的字符是:linrong | |
20 | +2018-04-10 18:16:44.528 INFO: 清除文本框中已有字符: //*[@id='password']] | |
21 | +2018-04-10 18:16:44.779 INFO: 输入的字符是:essa123 | |
22 | +2018-04-10 18:16:44.879 INFO: 点击元素: //*[@id='subBtn']] | |
23 | +2018-04-10 18:16:50.458 INFO: 判断检查点是否存在 | |
24 | +2018-04-10 18:16:50.551 INFO: 点击元素: //*[text()='退出']] | ... | ... |
1 | +++ a/Log/20180410_182112.log | |
... | ... | @@ -0,0 +1,24 @@ |
1 | +2018-04-10 18:21:12.472 INFO: 开始从配置文件中选择浏览器 | |
2 | +2018-04-10 18:21:12.488 INFO: 所选择的浏览器类型为: Chrome | |
3 | +2018-04-10 18:21:12.503 INFO: 所测试的URL地址为: http://bpms.hotfix.gz.essa | |
4 | +2018-04-10 18:21:16.909 INFO: 正在启动Chrome浏览器 | |
5 | +2018-04-10 18:21:18.492 INFO: 窗口最大化 | |
6 | +2018-04-10 18:21:22.457 INFO: 打开URL: http://bpms.hotfix.gz.essa | |
7 | +2018-04-10 18:21:22.465 INFO: 设置隐性等待5 秒 | |
8 | +2018-04-10 18:21:22.533 INFO: 获取所要读取的文件 | |
9 | +2018-04-10 18:21:23.972 INFO: 文件为:.xlsx格式 | |
10 | +2018-04-10 18:21:23.987 INFO: 读取文件成功 | |
11 | +2018-04-10 18:21:24.188 INFO: 清除文本框中已有字符: //*[@id='username']] | |
12 | +2018-04-10 18:21:24.367 INFO: 输入的字符是:admin | |
13 | +2018-04-10 18:21:24.509 INFO: 清除文本框中已有字符: //*[@id='password']] | |
14 | +2018-04-10 18:21:24.703 INFO: 输入的字符是:essa123 | |
15 | +2018-04-10 18:21:24.767 INFO: 点击元素: //*[@id='subBtn']] | |
16 | +2018-04-10 18:21:29.009 INFO: 判断检查点是否存在 | |
17 | +2018-04-10 18:21:29.064 INFO: 点击元素: //*[text()='退出']] | |
18 | +2018-04-10 18:21:31.203 INFO: 清除文本框中已有字符: //*[@id='username']] | |
19 | +2018-04-10 18:21:31.423 INFO: 输入的字符是:linrong | |
20 | +2018-04-10 18:21:31.534 INFO: 清除文本框中已有字符: //*[@id='password']] | |
21 | +2018-04-10 18:21:31.773 INFO: 输入的字符是:essa123 | |
22 | +2018-04-10 18:21:31.857 INFO: 点击元素: //*[@id='subBtn']] | |
23 | +2018-04-10 18:21:35.160 INFO: 判断检查点是否存在 | |
24 | +2018-04-10 18:21:35.203 INFO: 点击元素: //*[text()='退出']] | ... | ... |
1 | +++ a/Log/20180410_182513.log | |
... | ... | @@ -0,0 +1,24 @@ |
1 | +2018-04-10 18:25:13.904 INFO: 开始从配置文件中选择浏览器 | |
2 | +2018-04-10 18:25:13.908 INFO: 所选择的浏览器类型为: Chrome | |
3 | +2018-04-10 18:25:13.909 INFO: 所测试的URL地址为: http://bpms.hotfix.gz.essa | |
4 | +2018-04-10 18:25:19.731 INFO: 正在启动Chrome浏览器 | |
5 | +2018-04-10 18:25:21.294 INFO: 窗口最大化 | |
6 | +2018-04-10 18:25:27.893 INFO: 打开URL: http://bpms.hotfix.gz.essa | |
7 | +2018-04-10 18:25:27.901 INFO: 设置隐性等待5 秒 | |
8 | +2018-04-10 18:25:28.089 INFO: 获取所要读取的文件 | |
9 | +2018-04-10 18:25:29.964 INFO: 文件为:.xlsx格式 | |
10 | +2018-04-10 18:25:29.998 INFO: 读取文件成功 | |
11 | +2018-04-10 18:25:30.232 INFO: 清除文本框中已有字符: //*[@id='username']] | |
12 | +2018-04-10 18:25:30.431 INFO: 输入的字符是:admin | |
13 | +2018-04-10 18:25:30.596 INFO: 清除文本框中已有字符: //*[@id='password']] | |
14 | +2018-04-10 18:25:30.783 INFO: 输入的字符是:essa123 | |
15 | +2018-04-10 18:25:30.863 INFO: 点击元素: //*[@id='subBtn']] | |
16 | +2018-04-10 18:25:36.627 INFO: 判断检查点是否存在 | |
17 | +2018-04-10 18:25:36.675 INFO: 点击元素: //*[text()='退出']] | |
18 | +2018-04-10 18:25:38.822 INFO: 清除文本框中已有字符: //*[@id='username']] | |
19 | +2018-04-10 18:25:39.038 INFO: 输入的字符是:linrong | |
20 | +2018-04-10 18:25:39.159 INFO: 清除文本框中已有字符: //*[@id='password']] | |
21 | +2018-04-10 18:25:39.325 INFO: 输入的字符是:essa123 | |
22 | +2018-04-10 18:25:39.379 INFO: 点击元素: //*[@id='subBtn']] | |
23 | +2018-04-10 18:25:48.101 INFO: 判断检查点是否存在 | |
24 | +2018-04-10 18:25:48.175 INFO: 点击元素: //*[text()='退出']] | ... | ... |
1 | +++ a/Log/20180410_182641.log | |
... | ... | @@ -0,0 +1,24 @@ |
1 | +2018-04-10 18:26:41.705 INFO: 开始从配置文件中选择浏览器 | |
2 | +2018-04-10 18:26:41.709 INFO: 所选择的浏览器类型为: Chrome | |
3 | +2018-04-10 18:26:41.710 INFO: 所测试的URL地址为: http://bpms.hotfix.gz.essa | |
4 | +2018-04-10 18:26:47.049 INFO: 正在启动Chrome浏览器 | |
5 | +2018-04-10 18:26:48.683 INFO: 窗口最大化 | |
6 | +2018-04-10 18:26:54.150 INFO: 打开URL: http://bpms.hotfix.gz.essa | |
7 | +2018-04-10 18:26:54.163 INFO: 设置隐性等待5 秒 | |
8 | +2018-04-10 18:26:54.269 INFO: 获取所要读取的文件 | |
9 | +2018-04-10 18:26:56.317 INFO: 文件为:.xlsx格式 | |
10 | +2018-04-10 18:26:56.344 INFO: 读取文件成功 | |
11 | +2018-04-10 18:26:56.659 INFO: 清除文本框中已有字符: //*[@id='username']] | |
12 | +2018-04-10 18:26:56.867 INFO: 输入的字符是:admin | |
13 | +2018-04-10 18:26:57.089 INFO: 清除文本框中已有字符: //*[@id='password']] | |
14 | +2018-04-10 18:26:57.424 INFO: 输入的字符是:essa123 | |
15 | +2018-04-10 18:26:57.492 INFO: 点击元素: //*[@id='subBtn']] | |
16 | +2018-04-10 18:27:03.492 INFO: 判断检查点是否存在 | |
17 | +2018-04-10 18:27:03.579 INFO: 点击元素: //*[text()='退出']] | |
18 | +2018-04-10 18:27:06.532 INFO: 清除文本框中已有字符: //*[@id='username']] | |
19 | +2018-04-10 18:27:06.831 INFO: 输入的字符是:linrong | |
20 | +2018-04-10 18:27:07.431 INFO: 清除文本框中已有字符: //*[@id='password']] | |
21 | +2018-04-10 18:27:07.794 INFO: 输入的字符是:essa123 | |
22 | +2018-04-10 18:27:07.880 INFO: 点击元素: //*[@id='subBtn']] | |
23 | +2018-04-10 18:27:12.803 INFO: 判断检查点是否存在 | |
24 | +2018-04-10 18:27:12.855 INFO: 点击元素: //*[text()='退出']] | ... | ... |
1 | +++ a/pom.xml | |
... | ... | @@ -0,0 +1,118 @@ |
1 | +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | |
2 | + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | |
3 | + <modelVersion>4.0.0</modelVersion> | |
4 | + | |
5 | + <groupId>com.essatest</groupId> | |
6 | + <artifactId>essa</artifactId> | |
7 | + <version>0.0.1-SNAPSHOT</version> | |
8 | + <packaging>jar</packaging> | |
9 | + | |
10 | + <name>essa</name> | |
11 | + <url>http://maven.apache.org</url> | |
12 | + | |
13 | + <properties> | |
14 | + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> | |
15 | + </properties> | |
16 | + | |
17 | +<dependencies> | |
18 | + | |
19 | + <dependency> | |
20 | + <groupId>org.testng</groupId> | |
21 | + <artifactId>testng</artifactId> | |
22 | + <version>6.14.2</version> | |
23 | + <scope>test</scope> | |
24 | + </dependency> | |
25 | + | |
26 | + <dependency> | |
27 | + <groupId>org.seleniumhq.selenium</groupId> | |
28 | + <artifactId>selenium-java</artifactId> | |
29 | + <version>3.11.0</version> | |
30 | + </dependency> | |
31 | + | |
32 | + | |
33 | + <dependency> | |
34 | + <groupId>org.seleniumhq.selenium</groupId> | |
35 | + <artifactId>selenium-firefox-driver</artifactId> | |
36 | + <version>3.11.0</version> | |
37 | + </dependency> | |
38 | + | |
39 | + <dependency> | |
40 | + <groupId>org.seleniumhq.selenium</groupId> | |
41 | + <artifactId>selenium-chrome-driver</artifactId> | |
42 | + <version>3.11.0</version> | |
43 | + </dependency> | |
44 | + | |
45 | + <dependency> | |
46 | + <groupId>org.seleniumhq.selenium</groupId> | |
47 | + <artifactId>selenium-safari-driver</artifactId> | |
48 | + <version>3.11.0</version> | |
49 | + </dependency> | |
50 | + | |
51 | + <dependency> | |
52 | + <groupId>org.seleniumhq.selenium</groupId> | |
53 | + <artifactId>selenium-ie-driver</artifactId> | |
54 | + <version>3.11.0</version> | |
55 | + </dependency> | |
56 | + | |
57 | + | |
58 | + <dependency> | |
59 | + <groupId>org.seleniumhq.selenium</groupId> | |
60 | + <artifactId>selenium-support</artifactId> | |
61 | + <version>2.46.0</version> | |
62 | + </dependency> | |
63 | + | |
64 | + <dependency> | |
65 | + <groupId>javax.mail</groupId> | |
66 | + <artifactId>mail</artifactId> | |
67 | + <version>1.4</version> | |
68 | + </dependency> | |
69 | + | |
70 | + <dependency> | |
71 | + <groupId>org.apache.commons</groupId> | |
72 | + <artifactId>commons-collections4</artifactId> | |
73 | + <version>4.1</version> | |
74 | + </dependency> | |
75 | + | |
76 | + <dependency> | |
77 | + <groupId>org.apache.poi</groupId> | |
78 | + <artifactId>poi</artifactId> | |
79 | + <version>3.17</version> | |
80 | + </dependency> | |
81 | + | |
82 | + <dependency> | |
83 | + <groupId>org.apache.poi</groupId> | |
84 | + <artifactId>poi-ooxml</artifactId> | |
85 | + <version>3.17</version> | |
86 | + </dependency> | |
87 | + | |
88 | + <dependency> | |
89 | + <groupId>org.apache.poi</groupId> | |
90 | + <artifactId>poi-ooxml-schemas</artifactId> | |
91 | + <version>3.17</version> | |
92 | + </dependency> | |
93 | + | |
94 | + <dependency> | |
95 | + <groupId>org.apache.commons</groupId> | |
96 | + <artifactId>commons-io</artifactId> | |
97 | + <version>1.3.2</version> | |
98 | + </dependency> | |
99 | + </dependencies> | |
100 | + | |
101 | + <build> | |
102 | + <plugins> | |
103 | + <plugin> | |
104 | + <groupId>org.apache.maven.plugins</groupId> | |
105 | + <artifactId>maven-surefire-plugin</artifactId> | |
106 | + <version>2.7.1</version> | |
107 | + <configuration> | |
108 | + <!--<testFailureIgnore>true</testFailureIgnore>--> | |
109 | + <suiteXmlFiles> | |
110 | + <suiteXmlFile>suites/testng.xml</suiteXmlFile> | |
111 | + <!--此处testng.xml即为要运行的testng.xml文件--> | |
112 | + </suiteXmlFiles> | |
113 | + </configuration> | |
114 | + </plugin> | |
115 | + </plugins> | |
116 | + </build> | |
117 | + | |
118 | +</project> | ... | ... |
No preview for this file type
No preview for this file type
1 | +++ a/src/test/java/com/essa/framework/BasePage.java | |
... | ... | @@ -0,0 +1,447 @@ |
1 | +package com.essa.framework; | |
2 | + | |
3 | +import java.awt.Robot; | |
4 | +import java.awt.Toolkit; | |
5 | +import java.awt.datatransfer.StringSelection; | |
6 | +import java.awt.event.KeyEvent; | |
7 | +import java.io.File; | |
8 | +import java.io.FileInputStream; | |
9 | +import java.io.IOException; | |
10 | +import java.text.SimpleDateFormat; | |
11 | +import java.util.ArrayList; | |
12 | +import java.util.Date; | |
13 | +import java.util.Iterator; | |
14 | +import java.util.List; | |
15 | +import java.util.Set; | |
16 | + | |
17 | +import org.apache.commons.io.FileUtils; | |
18 | +import org.apache.poi.hssf.usermodel.HSSFWorkbook; | |
19 | +import org.apache.poi.ss.usermodel.Cell; | |
20 | +import org.apache.poi.ss.usermodel.Row; | |
21 | +import org.apache.poi.ss.usermodel.Sheet; | |
22 | +import org.apache.poi.ss.usermodel.Workbook; | |
23 | +import org.apache.poi.xssf.usermodel.XSSFWorkbook; | |
24 | +import org.openqa.selenium.Alert; | |
25 | +import org.openqa.selenium.JavascriptExecutor; | |
26 | +import org.openqa.selenium.NoSuchElementException; | |
27 | +import org.openqa.selenium.OutputType; | |
28 | +import org.openqa.selenium.TakesScreenshot; | |
29 | +import org.openqa.selenium.WebDriver; | |
30 | +import org.openqa.selenium.WebElement; | |
31 | +import org.openqa.selenium.support.ui.Select; | |
32 | + | |
33 | +import com.essa.framework.BasePage; | |
34 | +import com.essa.framework.LogType; | |
35 | +import com.essa.framework.Logger; | |
36 | + | |
37 | +public class BasePage { | |
38 | + | |
39 | + public static WebDriver driver; | |
40 | + public static String pageTitle; | |
41 | + public static String pageUrl; | |
42 | + public static String OutputFileName = getDateTimeByFormat(new Date(), "yyyyMMdd_HHmmss"); | |
43 | + /* | |
44 | + * 构造方法 | |
45 | + */ | |
46 | + public BasePage(WebDriver driver) { | |
47 | + BasePage.driver = driver; | |
48 | + } | |
49 | + | |
50 | + /* | |
51 | + * 在文本框内输入字符 | |
52 | + */ | |
53 | + protected void sendKeys(WebElement element, String text) { | |
54 | + try { | |
55 | + if (element.isEnabled()) { | |
56 | + element.clear(); | |
57 | + Logger.Output(LogType.LogTypeName.INFO, "清除文本框中已有字符:" + partialStr(element.toString(), "xpath:")); | |
58 | + element.sendKeys(text); | |
59 | + Logger.Output(LogType.LogTypeName.INFO, "输入的字符是:" + text); | |
60 | + } | |
61 | + } catch (Exception e) { | |
62 | + Logger.Output(LogType.LogTypeName.ERROR, element.toString()+"元素不存在"); | |
63 | + } | |
64 | + | |
65 | + } | |
66 | + | |
67 | + /* | |
68 | + * 点击元素,这里指点击鼠标左键 | |
69 | + */ | |
70 | + protected void click(WebElement element) { | |
71 | + | |
72 | + try { | |
73 | + if (element.isEnabled()) { | |
74 | + Logger.Output(LogType.LogTypeName.INFO, "点击元素:" + partialStr(element.toString(), "xpath:")); | |
75 | + element.click(); | |
76 | + } | |
77 | + } catch (Exception e) { | |
78 | + Logger.Output(LogType.LogTypeName.ERROR, e.getMessage() + "."); | |
79 | + } | |
80 | + | |
81 | + } | |
82 | + | |
83 | + /* | |
84 | + * 在文本输入框执行清除操作 | |
85 | + */ | |
86 | + protected void clear(WebElement element) { | |
87 | + | |
88 | + try { | |
89 | + if (element.isEnabled()) { | |
90 | + element.clear(); | |
91 | + Logger.Output(LogType.LogTypeName.INFO, "清除输入框中字符:" + partialStr(element.toString(), "xpath:") ); | |
92 | + } | |
93 | + } catch (Exception e) { | |
94 | + Logger.Output(LogType.LogTypeName.ERROR, e.getMessage() + "."); | |
95 | + } | |
96 | + | |
97 | + } | |
98 | + | |
99 | + /* | |
100 | + * 判断一个页面元素是否显示在当前页面 | |
101 | + */ | |
102 | + protected void verifyElementIsPresent(WebElement element) { | |
103 | + | |
104 | + try { | |
105 | + if (element.isDisplayed()) { | |
106 | + Logger.Output(LogType.LogTypeName.INFO, "元素存在:" + partialStr(element.toString(), "xpath:").trim()); | |
107 | + | |
108 | + } | |
109 | + } catch (Exception e) { | |
110 | + Logger.Output(LogType.LogTypeName.ERROR, e.getMessage() + "."); | |
111 | + } | |
112 | + } | |
113 | + | |
114 | + /* | |
115 | + * 获取页面的标题 | |
116 | + */ | |
117 | + protected String getCurrentPageTitle() { | |
118 | + | |
119 | + pageTitle = driver.getTitle(); | |
120 | + Logger.Output(LogType.LogTypeName.INFO, "当前页面的标题为:" + pageTitle); | |
121 | + return pageTitle; | |
122 | + } | |
123 | + | |
124 | + /* | |
125 | + * 获取页面的url | |
126 | + */ | |
127 | + protected String getCurrentPageUrl() { | |
128 | + | |
129 | + pageUrl = driver.getCurrentUrl(); | |
130 | + Logger.Output(LogType.LogTypeName.INFO, "当前页面的URL为:" + pageUrl); | |
131 | + return pageUrl; | |
132 | + } | |
133 | + | |
134 | + /* | |
135 | + * 处理多窗口之间切换 | |
136 | + */ | |
137 | + protected void switchWindow() { | |
138 | + | |
139 | + String currentWindow = driver.getWindowHandle();// 获取当前窗口句柄 | |
140 | + Set<String> handles = driver.getWindowHandles();// 获取所有窗口句柄 | |
141 | + Logger.Output(LogType.LogTypeName.INFO, "当前窗口数量: " + handles.size()); | |
142 | + Iterator<String> it = handles.iterator(); | |
143 | + while (it.hasNext()) { | |
144 | + if (currentWindow == it.next()) { | |
145 | + continue; | |
146 | + } | |
147 | + try { | |
148 | + // driver.close();// 关闭旧窗口 | |
149 | + WebDriver window = driver.switchTo().window(it.next());// 切换到新窗口 | |
150 | + Logger.Output(LogType.LogTypeName.INFO, "新窗口的标题为:" + window.getTitle()); | |
151 | + } catch (Exception e) { | |
152 | + Logger.Output(LogType.LogTypeName.ERROR, "无法切换到新打开窗口" + e.getMessage()); | |
153 | + | |
154 | + } | |
155 | + // driver.close();//关闭当前焦点所在的窗口 | |
156 | + } | |
157 | + // driver.switchTo().window(currentWindow);//回到原来页面 | |
158 | + } | |
159 | + | |
160 | + /* | |
161 | + * 浏览器弹框操作,true确认弹框,false取消弹框 | |
162 | + */ | |
163 | + protected void alert(boolean isAccept) { | |
164 | + Alert alert = driver.switchTo().alert(); | |
165 | + if (isAccept) { | |
166 | + Logger.Output(LogType.LogTypeName.INFO, "提示框内容为:" + alert.getText()); | |
167 | + alert.accept(); | |
168 | + Logger.Output(LogType.LogTypeName.INFO, "确认弹框"); | |
169 | + } else { | |
170 | + Logger.Output(LogType.LogTypeName.INFO, "提示框内容为:" + alert.getText()); | |
171 | + alert.dismiss(); | |
172 | + Logger.Output(LogType.LogTypeName.INFO, "取消弹框"); | |
173 | + } | |
174 | + } | |
175 | + | |
176 | + /* | |
177 | + * 下拉框选择选项 | |
178 | + */ | |
179 | + protected void selectElement(WebElement element, String optionText) { | |
180 | + Select select = new Select(element); | |
181 | + select.selectByVisibleText(optionText); | |
182 | + Logger.Output(LogType.LogTypeName.INFO, "选择选项:" + optionText); | |
183 | + } | |
184 | + | |
185 | + /* | |
186 | + * 判断元素在页面中是否存在 | |
187 | + */ | |
188 | + protected boolean isElementExist(WebElement element) { | |
189 | + try { | |
190 | + Boolean bool = element.isDisplayed(); | |
191 | + Logger.Output(LogType.LogTypeName.INFO, "检查元素是否存在:" + bool); | |
192 | + return bool; | |
193 | + } catch (NoSuchElementException e) { | |
194 | + takeScreenShot(); | |
195 | + Logger.Output(LogType.LogTypeName.ERROR, "无法确认当前元素是否存在:" + e.getMessage()); | |
196 | + return false; | |
197 | + } | |
198 | + } | |
199 | + | |
200 | + /* | |
201 | + * 获取元素的文本值 | |
202 | + */ | |
203 | + protected void getText(WebElement element) { | |
204 | + | |
205 | + try { | |
206 | + if (element.isEnabled()) { | |
207 | + element.getText(); | |
208 | + Logger.Output(LogType.LogTypeName.INFO, "获取当前元素的文本值:" + element.getText()); | |
209 | + } | |
210 | + } catch (Exception e) { | |
211 | + Logger.Output(LogType.LogTypeName.ERROR, e.getMessage() + "."); | |
212 | + } | |
213 | + } | |
214 | + | |
215 | + /* | |
216 | + * js的点击操作 | |
217 | + */ | |
218 | + protected void jsExecutorClick(WebElement element) { | |
219 | + try { | |
220 | + JavascriptExecutor jsExecutor = (JavascriptExecutor) driver; | |
221 | + jsExecutor.executeScript("arguments[0].click();", element); | |
222 | + Logger.Output(LogType.LogTypeName.INFO, "调用JavaScript点击元素:" + element.getText()); | |
223 | + } catch (Exception e) { | |
224 | + Logger.Output(LogType.LogTypeName.ERROR, e.getMessage() + "."); | |
225 | + } | |
226 | + | |
227 | + } | |
228 | + | |
229 | + /* | |
230 | + * js的删除操作 | |
231 | + */ | |
232 | + protected void jsExecutorRemoveAttribute(WebElement webElement, String attribute) { | |
233 | + try { | |
234 | + JavascriptExecutor jsExecutor = (JavascriptExecutor) driver; | |
235 | + jsExecutor.executeScript("arguments[0].removeAttribute('" + attribute + "');", webElement); | |
236 | + Logger.Output(LogType.LogTypeName.INFO, "调用JavaScript删除元素属性:" + attribute); | |
237 | + } catch (Exception e) { | |
238 | + Logger.Output(LogType.LogTypeName.ERROR, e.getMessage() + "."); | |
239 | + } | |
240 | + | |
241 | + } | |
242 | + | |
243 | + /* | |
244 | + * 获取js返回的值 | |
245 | + */ | |
246 | + protected String jsExecutorGetAttributeValue(WebDriver driver, WebElement webElement) { | |
247 | + try { | |
248 | + JavascriptExecutor jsExecutor = (JavascriptExecutor) driver; | |
249 | + Logger.Output(LogType.LogTypeName.INFO, "调用JavaScript返回元素属性值"); | |
250 | + return (String) jsExecutor.executeScript("return arguments[0].id;", webElement); | |
251 | + } catch (Exception e) { | |
252 | + Logger.Output(LogType.LogTypeName.ERROR, e.getMessage() + "."); | |
253 | + return null; | |
254 | + } | |
255 | + } | |
256 | + | |
257 | + /* | |
258 | + * 读取excel中的数据 | |
259 | + * 第一个参数为excel的路径地址 | |
260 | + * 第二个参数为excel的文件名 | |
261 | + * 第三个参数为excel的worksheet名 | |
262 | + */ | |
263 | + public static Object[][] readExcel(String filepath, String filename, String SheetName) throws Exception { | |
264 | + File file = new File(filepath + "\\" + filename); | |
265 | + FileInputStream inputStream = new FileInputStream(file); | |
266 | + Workbook Workbook = null; | |
267 | + // 获取文件扩展名 | |
268 | + String fileExtensionName = filename.substring(filename.indexOf(".")); | |
269 | + Logger.Output(LogType.LogTypeName.INFO, "获取所要读取的文件"); | |
270 | + // 判断是.xlsx还是.xls的文件并进行实例化 | |
271 | + if (fileExtensionName.equals(".xlsx")) { | |
272 | + Workbook = new XSSFWorkbook(inputStream); | |
273 | + Logger.Output(LogType.LogTypeName.INFO, "文件为:.xlsx格式"); | |
274 | + } else if (fileExtensionName.equals(".xls")) { | |
275 | + Workbook = new HSSFWorkbook(inputStream); | |
276 | + Logger.Output(LogType.LogTypeName.INFO, "文件为:.xls格式"); | |
277 | + } | |
278 | + // 通过sheetName生成Sheet对象 | |
279 | + Sheet Sheet = Workbook.getSheet(SheetName); | |
280 | + int rowCount = Sheet.getLastRowNum() - Sheet.getFirstRowNum(); | |
281 | + List<Object[]> records = new ArrayList<Object[]>(); | |
282 | + for (int i = 0; i < rowCount + 1; i++) { | |
283 | + Row row = Sheet.getRow(i); | |
284 | + String fields[] = new String[row.getLastCellNum()]; | |
285 | + for (int j = 0; j < row.getLastCellNum(); j++) { | |
286 | + if (row.getCell(j).getCellType() == Cell.CELL_TYPE_NUMERIC) { | |
287 | + row.getCell(j).setCellType(Cell.CELL_TYPE_STRING); | |
288 | + } | |
289 | + // 判断数据的类型 | |
290 | + switch (row.getCell(j).getCellType()) { | |
291 | + case Cell.CELL_TYPE_NUMERIC: // 数字 | |
292 | + fields[j] = String.valueOf(row.getCell(j).getNumericCellValue()); | |
293 | + break; | |
294 | + case Cell.CELL_TYPE_STRING: // 字符串 | |
295 | + fields[j] = String.valueOf(row.getCell(j).getStringCellValue()); | |
296 | + break; | |
297 | + case Cell.CELL_TYPE_BOOLEAN: // Boolean | |
298 | + fields[j] = String.valueOf(row.getCell(j).getBooleanCellValue()); | |
299 | + break; | |
300 | + case Cell.CELL_TYPE_FORMULA: // 公式 | |
301 | + fields[j] = String.valueOf(row.getCell(j).getCellFormula()); | |
302 | + break; | |
303 | + case Cell.CELL_TYPE_BLANK: // 空值 | |
304 | + fields[j] = ""; | |
305 | + break; | |
306 | + case Cell.CELL_TYPE_ERROR: // 故障 | |
307 | + fields[j] = "非法字符"; | |
308 | + break; | |
309 | + default: | |
310 | + fields[j] = "未知类型"; | |
311 | + break; | |
312 | + } | |
313 | + } | |
314 | + | |
315 | + records.add(fields); | |
316 | + } | |
317 | + Object[][] results = new Object[records.size()][]; | |
318 | + for (int i = 0; i < records.size(); i++) { | |
319 | + results[i] = records.get(i); | |
320 | + } | |
321 | + Logger.Output(LogType.LogTypeName.INFO, "读取文件成功"); | |
322 | + return results; | |
323 | + } | |
324 | + | |
325 | + /* | |
326 | + * 上传文件 | |
327 | + */ | |
328 | + protected void uploadFile(String filePath) throws Exception { | |
329 | + Logger.Output(LogType.LogTypeName.INFO, "开始上传文件"); | |
330 | + StringSelection sel = new StringSelection(filePath); | |
331 | + Toolkit.getDefaultToolkit().getSystemClipboard().setContents(sel, null); | |
332 | + // 新建一个Robot类的对象 | |
333 | + Robot robot = new Robot(); | |
334 | + Thread.sleep(1000); | |
335 | + | |
336 | + // 按下回车 | |
337 | + robot.keyPress(KeyEvent.VK_ENTER); | |
338 | + | |
339 | + // 释放回车 | |
340 | + robot.keyRelease(KeyEvent.VK_ENTER); | |
341 | + | |
342 | + // 按下 CTRL+V | |
343 | + robot.keyPress(KeyEvent.VK_CONTROL); | |
344 | + robot.keyPress(KeyEvent.VK_V); | |
345 | + | |
346 | + // 释放 CTRL+V | |
347 | + robot.keyRelease(KeyEvent.VK_CONTROL); | |
348 | + robot.keyRelease(KeyEvent.VK_V); | |
349 | + Thread.sleep(1000); | |
350 | + | |
351 | + // 点击回车 Enter | |
352 | + robot.keyPress(KeyEvent.VK_ENTER); | |
353 | + robot.keyRelease(KeyEvent.VK_ENTER); | |
354 | + Logger.Output(LogType.LogTypeName.INFO, "上传文件成功"); | |
355 | + } | |
356 | + | |
357 | + /* | |
358 | + * 字符串切片 | |
359 | + * 第一个参数:需要被操作的元素 | |
360 | + * 第二个参数:从这个字符开始切 | |
361 | + * 第三个参数:到这个字符结尾 | |
362 | + * 例子:某个元素的文本值为:广州市天河区猎德 | |
363 | + * 只要“天河区” | |
364 | + * 第二个参数:天 第三个参数:区 | |
365 | + */ | |
366 | + protected String partialStr(WebElement element, String begin, String end) { | |
367 | + String result_string = element.getText(); | |
368 | + Logger.Output(LogType.LogTypeName.INFO, "获取所需切片的字符串"); | |
369 | + // 根据词切片,取第二片字符串 | |
370 | + String st1 = result_string.split(begin)[1]; | |
371 | + Logger.Output(LogType.LogTypeName.INFO, "切除" + begin + "之前的字符串"); | |
372 | + // 再切一次结尾,得到我们想要的结果 | |
373 | + String search_need = st1.split(end)[0]; | |
374 | + Logger.Output(LogType.LogTypeName.INFO, "切除" + end + "之后的字符串"); | |
375 | + Logger.Output(LogType.LogTypeName.INFO, "返回切片后的字符串"); | |
376 | + return search_need; | |
377 | + } | |
378 | + | |
379 | + //复写切片 | |
380 | + protected String partialStr(String string,String begin) { | |
381 | + String st1 = string.split(begin)[1]; | |
382 | + return st1; | |
383 | + } | |
384 | + | |
385 | + /* | |
386 | + * 每隔1秒查找一次我们要的元素是否存在 | |
387 | + */ | |
388 | + protected WebElement mywait(WebElement element) throws InterruptedException { | |
389 | + while(!(isElementExist(element))) | |
390 | + Thread.sleep(1000); | |
391 | + return element; | |
392 | + } | |
393 | + | |
394 | + /* | |
395 | + * 设立检查点,判断页面是否是我们要的 | |
396 | + */ | |
397 | + protected boolean isThisPage(String checkPoint,WebElement element) { | |
398 | + boolean bool1=checkPoint.equals(element.getText()); | |
399 | + Logger.Output(LogType.LogTypeName.INFO, "判断检查点是否存在"); | |
400 | + return bool1; | |
401 | + } | |
402 | + | |
403 | + /* | |
404 | + * 截图当前页面 | |
405 | + */ | |
406 | + protected void takeScreenShot() { | |
407 | + File src = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE); | |
408 | + | |
409 | + try { | |
410 | + // 拷贝截图文件到我们项目./Screenshots | |
411 | + FileUtils.copyFile(src, new File(".\\Log\\Screenshots\\"+OutputFileName+"截图.png")); | |
412 | + Logger.Output(LogType.LogTypeName.INFO, "截图当前页面成功!"); | |
413 | + } | |
414 | + | |
415 | + catch (IOException e) { | |
416 | + System.out.println(e.getMessage()); | |
417 | + Logger.Output(LogType.LogTypeName.INFO, "截图当前页面失败!"); | |
418 | + } | |
419 | + | |
420 | + } | |
421 | + | |
422 | + /* | |
423 | + * 上下移动滚动条,这里使用js操作 | |
424 | + * percent值:0:最下方 100:最上方 | |
425 | + */ | |
426 | + protected void moveHeightScroll(String percent) { | |
427 | + JavascriptExecutor js = (JavascriptExecutor)driver; | |
428 | + js.executeScript("scrollBy(0, 0-document.body.scrollHeight *"+percent+"/100)"); | |
429 | + Logger.Output(LogType.LogTypeName.INFO, "上下拖动滚动条"); | |
430 | + } | |
431 | + | |
432 | + //左右移动滚动条,0:最左 100:最右 | |
433 | + protected void moveWidthScroll(String percent) { | |
434 | + JavascriptExecutor js = (JavascriptExecutor)driver; | |
435 | + js.executeScript("scrollBy(0, 0-document.body.scrollWidth *"+percent+"/100)"); | |
436 | + Logger.Output(LogType.LogTypeName.INFO, "左右拖动滚动条"); | |
437 | + } | |
438 | + | |
439 | + //获取当前系统时间,得到格式化时间字符串 | |
440 | + protected static String getDateTimeByFormat(Date date, String format) { | |
441 | + | |
442 | + SimpleDateFormat df = new SimpleDateFormat(format); | |
443 | + | |
444 | + return df.format(date); | |
445 | + | |
446 | + } | |
447 | +} | |
0 | 448 | \ No newline at end of file | ... | ... |
src/test/java/com/essa/framework/BrowserEngine.java
0 → 100644
1 | +++ a/src/test/java/com/essa/framework/BrowserEngine.java | |
... | ... | @@ -0,0 +1,119 @@ |
1 | +package com.essa.framework; | |
2 | + | |
3 | +import java.io.FileInputStream; | |
4 | +import java.io.IOException; | |
5 | +import java.io.InputStream; | |
6 | +import java.util.Properties; | |
7 | +import java.util.concurrent.TimeUnit; | |
8 | + | |
9 | +import org.openqa.selenium.WebDriver; | |
10 | +import org.openqa.selenium.chrome.ChromeDriver; | |
11 | +import org.openqa.selenium.firefox.FirefoxDriver; | |
12 | +import org.openqa.selenium.firefox.FirefoxProfile; | |
13 | +import org.openqa.selenium.ie.InternetExplorerDriver; | |
14 | +import org.openqa.selenium.remote.CapabilityType; | |
15 | +import org.openqa.selenium.remote.DesiredCapabilities; | |
16 | + | |
17 | +public class BrowserEngine { | |
18 | + | |
19 | + private String browserName; | |
20 | + private String serverURL; | |
21 | + private WebDriver driver; | |
22 | + | |
23 | + public void initConfigData() throws IOException{ | |
24 | + | |
25 | + Properties p = new Properties(); | |
26 | + // 加载配置文件 | |
27 | + InputStream ips = new FileInputStream(".\\src\\main\\resources\\TestConfig\\config.properties"); | |
28 | + p.load(ips); | |
29 | + | |
30 | + Logger.Output(LogType.LogTypeName.INFO, "开始从配置文件中选择浏览器"); | |
31 | + browserName=p.getProperty("browserName"); | |
32 | + Logger.Output(LogType.LogTypeName.INFO, "所选择的浏览器类型为: "+ browserName); | |
33 | + serverURL = p.getProperty("URL"); | |
34 | + Logger.Output(LogType.LogTypeName.INFO, "所测试的URL地址为: "+ serverURL); | |
35 | + ips.close(); | |
36 | + } | |
37 | + | |
38 | + public WebDriver getBrowser(){ | |
39 | + | |
40 | + if(browserName.equalsIgnoreCase("Firefox")){ | |
41 | + | |
42 | + System.setProperty("webdriver.gecko.driver", ".\\src\\main\\resources\\geckodriver.exe"); | |
43 | + driver = createFireFoxDriver(); | |
44 | + Logger.Output(LogType.LogTypeName.INFO, "正在启动FireFox浏览器"); | |
45 | + | |
46 | + } | |
47 | + else if(browserName.equals("Chrome")){ | |
48 | + System.setProperty("webdriver.chrome.driver", ".\\src\\main\\resources\\chromedriver.exe"); | |
49 | + driver= new ChromeDriver(); | |
50 | + Logger.Output(LogType.LogTypeName.INFO, "正在启动Chrome浏览器"); | |
51 | + | |
52 | + }else if(browserName.equalsIgnoreCase("IE")){ | |
53 | + | |
54 | + System.setProperty("webdriver.ie.driver", ".\\src\\main\resources\\IEDriverServer.exe"); | |
55 | + driver= new InternetExplorerDriver(); | |
56 | + Logger.Output(LogType.LogTypeName.INFO, "正在启动IE浏览器"); | |
57 | + } | |
58 | + driver.manage().window().maximize(); | |
59 | + Logger.Output(LogType.LogTypeName.INFO, "窗口最大化"); | |
60 | + driver.get(serverURL); | |
61 | + Logger.Output(LogType.LogTypeName.INFO, "打开URL: "+ serverURL); | |
62 | + callWait(5); | |
63 | + return driver; | |
64 | + } | |
65 | + | |
66 | + /* | |
67 | + * 关闭浏览器并退出方法 | |
68 | + */ | |
69 | + | |
70 | + public void tearDown() throws InterruptedException{ | |
71 | + | |
72 | + Logger.Output(LogType.LogTypeName.INFO, "关闭浏览器"); | |
73 | + driver.quit(); | |
74 | + Thread.sleep(3000); | |
75 | + } | |
76 | + | |
77 | + /* | |
78 | + * 隐式时间等待方法 | |
79 | + */ | |
80 | + public void callWait(int time){ | |
81 | + | |
82 | + driver.manage().timeouts().implicitlyWait(time, TimeUnit.SECONDS); | |
83 | + Logger.Output(LogType.LogTypeName.INFO, "设置隐性等待"+time+" 秒"); | |
84 | + } | |
85 | + | |
86 | + | |
87 | + /* | |
88 | + * createFireFox Driver | |
89 | + * @Param: null | |
90 | + * @return: WebDriver | |
91 | + */ | |
92 | + | |
93 | + private WebDriver createFireFoxDriver() { | |
94 | + | |
95 | + WebDriver driver = null; | |
96 | + FirefoxProfile firefoxProfile = new FirefoxProfile(); | |
97 | + | |
98 | + firefoxProfile.setPreference("prefs.converted-to-utf8", true); | |
99 | + //set download folder to default folder: TestDownload | |
100 | + firefoxProfile.setPreference("browser.download.folderList", 2); | |
101 | + firefoxProfile.setPreference("browser.download.dir", ".\\TestDownload"); | |
102 | + | |
103 | + try { | |
104 | + driver = new FirefoxDriver(); | |
105 | + } catch (Exception e) { | |
106 | + Logger.Output(LogType.LogTypeName.ERROR, e.getMessage()); | |
107 | + Logger.Output(LogType.LogTypeName.ERROR, "Failed to initilize the Firefox driver"); | |
108 | + } | |
109 | + return driver; | |
110 | + } | |
111 | + public void anQuan() { | |
112 | + // 创建DesiredCapabilities类的一个对象实例 | |
113 | + DesiredCapabilities cap=DesiredCapabilities.chrome(); | |
114 | + // 设置变量ACCEPT_SSL_CERTS的值为True | |
115 | + cap.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true); | |
116 | + Logger.Output(LogType.LogTypeName.INFO, "设置浏览器可以打开不安全链接"); | |
117 | + } | |
118 | +} | |
119 | + | ... | ... |
src/test/java/com/essa/framework/ListenerSuite.java
0 → 100644
1 | +++ a/src/test/java/com/essa/framework/ListenerSuite.java | |
... | ... | @@ -0,0 +1,20 @@ |
1 | +package com.essa.framework; | |
2 | + | |
3 | +import org.testng.ISuite; | |
4 | +import org.testng.ISuiteListener; | |
5 | + | |
6 | +import com.essa.framework.SendEmail; | |
7 | + | |
8 | +public class ListenerSuite implements ISuiteListener { | |
9 | + | |
10 | + private String[] args; | |
11 | + | |
12 | + public void onFinish(ISuite arg0) { | |
13 | + SendEmail.main(args); | |
14 | + } | |
15 | + | |
16 | + public void onStart(ISuite arg0) { | |
17 | + // TODO Auto-generated method stub | |
18 | + } | |
19 | + | |
20 | +} | ... | ... |
1 | +++ a/src/test/java/com/essa/framework/LogType.java | |
... | ... | @@ -0,0 +1,20 @@ |
1 | +package com.essa.framework; | |
2 | + | |
3 | +public class LogType { | |
4 | + | |
5 | + public LogType(){ | |
6 | + | |
7 | + } | |
8 | + | |
9 | + public enum LogTypeName{ | |
10 | + | |
11 | + // | |
12 | + INFO, | |
13 | + // | |
14 | + ERROR, | |
15 | + // | |
16 | + WARNING, | |
17 | + // | |
18 | + DEBUG; | |
19 | + } | |
20 | +} | |
0 | 21 | \ No newline at end of file | ... | ... |
1 | +++ a/src/test/java/com/essa/framework/Logger.java | |
... | ... | @@ -0,0 +1,66 @@ |
1 | +package com.essa.framework; | |
2 | + | |
3 | +import java.io.File; | |
4 | +import java.io.FileOutputStream; | |
5 | +import java.io.OutputStreamWriter; | |
6 | +import java.text.SimpleDateFormat; | |
7 | +import java.util.Date; | |
8 | + | |
9 | +import com.essa.framework.LogType; | |
10 | + | |
11 | +public class Logger { | |
12 | + | |
13 | + public static String OutputFileName = getDateTimeByFormat(new Date(), "yyyyMMdd_HHmmss"); | |
14 | + private static OutputStreamWriter outputStreamWriter; | |
15 | + private static String logFileName; | |
16 | + public static boolean LogFlag = true; | |
17 | + | |
18 | + public Logger() { | |
19 | + | |
20 | + } | |
21 | + | |
22 | + private static void WriteLog(String logEntry) { | |
23 | + | |
24 | + try { | |
25 | + | |
26 | + // 定义日志文件保存路径和日志文件名称 | |
27 | + logFileName = ".\\Log" + "\\" + OutputFileName + ".log"; | |
28 | + if (outputStreamWriter == null) { | |
29 | + File logFile = new File(logFileName); | |
30 | + | |
31 | + if (!logFile.exists()) | |
32 | + logFile.createNewFile(); | |
33 | + //利用OutputStreamWriter往日志文件写内容,字符编码是unicode | |
34 | + outputStreamWriter = new OutputStreamWriter(new FileOutputStream(logFileName), "utf-8"); | |
35 | + } | |
36 | + outputStreamWriter.write(logEntry, 0, logEntry.length()); | |
37 | + outputStreamWriter.flush(); | |
38 | + | |
39 | + } catch (Exception e) { | |
40 | + System.out.println(LogType.LogTypeName.ERROR.toString() + ": Failed to write the file " + logFileName); | |
41 | + e.printStackTrace(); | |
42 | + | |
43 | + } | |
44 | + | |
45 | + } | |
46 | + | |
47 | + //获取当前系统时间,得到格式化时间字符串 | |
48 | + private static String getDateTimeByFormat(Date date, String format) { | |
49 | + | |
50 | + SimpleDateFormat df = new SimpleDateFormat(format); | |
51 | + | |
52 | + return df.format(date); | |
53 | + | |
54 | + } | |
55 | + | |
56 | + public static void Output(LogType.LogTypeName logTypeName, String logMessage) { | |
57 | + | |
58 | + Date date = new Date(); | |
59 | + String logTime = getDateTimeByFormat(date, "yyyy-MM-dd HH:mm:ss.SSS"); | |
60 | + String logEntry = logTime + " " + logTypeName.name() + ": " + logMessage + "\r\n"; | |
61 | + System.out.print(logEntry); | |
62 | + // 定义一个开关,为True就输出日志,如果你不想输出,改成False | |
63 | + if (LogFlag) | |
64 | + WriteLog(logEntry); | |
65 | + } | |
66 | +} | ... | ... |
1 | +++ a/src/test/java/com/essa/framework/SendEmail.java | |
... | ... | @@ -0,0 +1,113 @@ |
1 | +package com.essa.framework; | |
2 | + | |
3 | +import java.util.Properties; | |
4 | + | |
5 | +import javax.activation.DataHandler; | |
6 | +import javax.activation.DataSource; | |
7 | +import javax.activation.FileDataSource; | |
8 | +import javax.mail.BodyPart; | |
9 | +import javax.mail.Message; | |
10 | +import javax.mail.MessagingException; | |
11 | +import javax.mail.Multipart; | |
12 | +import javax.mail.PasswordAuthentication; | |
13 | +import javax.mail.Session; | |
14 | +import javax.mail.Transport; | |
15 | +import javax.mail.internet.InternetAddress; | |
16 | +import javax.mail.internet.MimeBodyPart; | |
17 | +import javax.mail.internet.MimeMessage; | |
18 | +import javax.mail.internet.MimeMultipart; | |
19 | + | |
20 | +public class SendEmail { | |
21 | + | |
22 | + public static void main(String[] args) { | |
23 | + | |
24 | + // 创建一个Property文件对象 | |
25 | + Properties props = new Properties(); | |
26 | + | |
27 | + // 设置邮件服务器的信息,这里设置smtp主机名称 | |
28 | + props.put("mail.smtp.host", "smtp.qq.com"); | |
29 | + | |
30 | + // 设置socket factory 的端口 | |
31 | + props.put("mail.smtp.socketFactory.port", "465"); | |
32 | + | |
33 | + // 设置socket factory | |
34 | + props.put("mail.smtp.socketFactory.class","javax.net.ssl.SSLSocketFactory"); | |
35 | + | |
36 | + // 设置需要身份验证 | |
37 | + props.put("mail.smtp.auth", "true"); | |
38 | + | |
39 | + // 设置SMTP的端口,QQ的smtp端口是25 | |
40 | + props.put("mail.smtp.port", "25"); | |
41 | + | |
42 | + // 身份验证实现 | |
43 | + Session session = Session.getDefaultInstance(props, new javax.mail.Authenticator() { | |
44 | + | |
45 | + protected PasswordAuthentication getPasswordAuthentication() { | |
46 | + // 第二个参数,就是我QQ开启smtp的授权码 | |
47 | + return new PasswordAuthentication("278953238@qq.com", "pfpzqcamljytbjec"); | |
48 | + | |
49 | + } | |
50 | + | |
51 | + }); | |
52 | + | |
53 | + try { | |
54 | + | |
55 | + // 创建一个MimeMessage类的实例对象 | |
56 | + Message message = new MimeMessage(session); | |
57 | + | |
58 | + // 设置发件人邮箱地址 | |
59 | + message.setFrom(new InternetAddress("278953238@qq.com")); | |
60 | + | |
61 | + // 设置收件人邮箱地址 | |
62 | + message.setRecipients(Message.RecipientType.TO,InternetAddress.parse("3289714863@qq.com")); | |
63 | + | |
64 | + // 设置邮件主题 | |
65 | + message.setSubject("测试发送邮件"); | |
66 | + | |
67 | + // 创建一个MimeBodyPart的对象,以便添加内容 | |
68 | + BodyPart messageBodyPart1 = new MimeBodyPart(); | |
69 | + | |
70 | + // 设置邮件正文内容 | |
71 | + messageBodyPart1.setText("这个是邮件的正文部分"); | |
72 | + | |
73 | + // 创建另外一个MimeBodyPart对象,以便添加其他内容 | |
74 | + MimeBodyPart messageBodyPart2 = new MimeBodyPart(); | |
75 | + | |
76 | + // 设置邮件中附件文件的路径 | |
77 | + String filename = ".\\test-output\\emailable-report.html"; | |
78 | + | |
79 | + // 创建一个datasource对象,并传递文件 | |
80 | + DataSource source = new FileDataSource(filename); | |
81 | + | |
82 | + // 设置handler | |
83 | + messageBodyPart2.setDataHandler(new DataHandler(source)); | |
84 | + | |
85 | + // 加载文件 | |
86 | + messageBodyPart2.setFileName(filename); | |
87 | + | |
88 | + // 创建一个MimeMultipart类的实例对象 | |
89 | + Multipart multipart = new MimeMultipart(); | |
90 | + | |
91 | + // 添加正文1内容 | |
92 | + multipart.addBodyPart(messageBodyPart1); | |
93 | + | |
94 | + // 添加正文2内容 | |
95 | + multipart.addBodyPart(messageBodyPart2); | |
96 | + | |
97 | + // 设置内容 | |
98 | + message.setContent(multipart); | |
99 | + | |
100 | + // 最终发送邮件 | |
101 | + Transport.send(message); | |
102 | + | |
103 | + System.out.println("=====邮件已经发送====="); | |
104 | + | |
105 | + } catch (MessagingException e) { | |
106 | + | |
107 | + throw new RuntimeException(e); | |
108 | + | |
109 | + } | |
110 | + | |
111 | + } | |
112 | + | |
113 | +} | ... | ... |
1 | +++ a/src/test/java/com/essa/pageObject/BaseTest.java | |
... | ... | @@ -0,0 +1,37 @@ |
1 | +package com.essa.pageObject; | |
2 | + | |
3 | +import java.io.IOException; | |
4 | + | |
5 | +import org.openqa.selenium.WebDriver; | |
6 | +import org.openqa.selenium.support.PageFactory; | |
7 | +import com.essa.framework.BrowserEngine; | |
8 | +import com.essa.pageObject.LoginPage; | |
9 | + | |
10 | +public class BaseTest { | |
11 | + public WebDriver driver; | |
12 | + | |
13 | + public WebDriver getDriver() { | |
14 | + return driver; | |
15 | + } | |
16 | + | |
17 | + // 调用浏览器,打开要测试的网页 | |
18 | + public void initsetUp() throws IOException { | |
19 | + | |
20 | + BrowserEngine browserEngine = new BrowserEngine(); | |
21 | + | |
22 | + browserEngine.initConfigData(); | |
23 | + | |
24 | + driver = browserEngine.getBrowser(); | |
25 | + | |
26 | + } | |
27 | + | |
28 | + //初始化登录页面,登录 | |
29 | + public void loginValid() { | |
30 | + | |
31 | + LoginPage loginPage = PageFactory.initElements(driver, LoginPage.class); | |
32 | + | |
33 | + loginPage.login("admin", "essa123"); | |
34 | + | |
35 | + } | |
36 | +} | |
37 | + | ... | ... |
1 | +++ a/src/test/java/com/essa/pageObject/HomePage.java | |
... | ... | @@ -0,0 +1,73 @@ |
1 | +package com.essa.pageObject; | |
2 | + | |
3 | +import org.openqa.selenium.WebDriver; | |
4 | +import org.openqa.selenium.WebElement; | |
5 | +import org.openqa.selenium.support.FindBy; | |
6 | +import com.essa.framework.BasePage; | |
7 | + | |
8 | +public class HomePage extends BasePage{ | |
9 | + public HomePage(WebDriver driver) { | |
10 | + super(driver); | |
11 | + | |
12 | + } | |
13 | + | |
14 | + /* | |
15 | + * 元素定位 | |
16 | + */ | |
17 | + | |
18 | + //退出 | |
19 | + @FindBy (xpath="//*[text()='退出']") | |
20 | + WebElement logout; | |
21 | + | |
22 | + //供应商管理 | |
23 | + @FindBy (xpath="//*[text()='供应商管理']") | |
24 | + WebElement supplier; | |
25 | + | |
26 | + //平台运营跟进管理 | |
27 | + @FindBy (xpath="//*/a[contains(text(),'平台运营跟进管理')]") | |
28 | + WebElement operationsTrack; | |
29 | + | |
30 | + //供应商查询 | |
31 | + @FindBy (xpath="//*[text()='供应商查询']") | |
32 | + WebElement searchSuppliers; | |
33 | + | |
34 | + /* | |
35 | + * 方法 | |
36 | + */ | |
37 | + | |
38 | + //进入运营跟进管理页面 | |
39 | + public SupplierOperationsTrackPage goToSupplierOperationsTrack() { | |
40 | + | |
41 | + //点击 供应商管理 | |
42 | + click(supplier); | |
43 | + | |
44 | + //点击 平台运营跟进管理 | |
45 | + click(operationsTrack); | |
46 | + | |
47 | + //此时,系统会加载一个平台运营跟进管理页面,故在此初始化该页面并将driver传递过去 | |
48 | + return new SupplierOperationsTrackPage(driver); | |
49 | + | |
50 | + } | |
51 | + | |
52 | + //判断是否存在退出按钮 | |
53 | + public boolean isSucceed() { | |
54 | + | |
55 | + //判断退出按钮是否存在,存在则表示成功进入首页 | |
56 | + return isThisPage("退出", logout); | |
57 | + | |
58 | + } | |
59 | + | |
60 | + //判断是否选中“供应商管理” | |
61 | + public boolean isSearchSuppliers() { | |
62 | + | |
63 | + return isElementExist(searchSuppliers); | |
64 | + | |
65 | + } | |
66 | + | |
67 | + //退出登录 | |
68 | + public void logout() { | |
69 | + | |
70 | + click(logout); | |
71 | + | |
72 | + } | |
73 | +} | |
0 | 74 | \ No newline at end of file | ... | ... |
1 | +++ a/src/test/java/com/essa/pageObject/LoginPage.java | |
... | ... | @@ -0,0 +1,53 @@ |
1 | +package com.essa.pageObject; | |
2 | + | |
3 | +import org.openqa.selenium.WebDriver; | |
4 | +import org.openqa.selenium.WebElement; | |
5 | +import org.openqa.selenium.support.FindBy; | |
6 | + | |
7 | +import com.essa.framework.BasePage; | |
8 | + | |
9 | +public class LoginPage extends BasePage{ | |
10 | + | |
11 | + public LoginPage(WebDriver driver) { | |
12 | + super(driver); | |
13 | + // TODO Auto-generated constructor stub | |
14 | + } | |
15 | + | |
16 | + /* | |
17 | + * 元素定位 | |
18 | + */ | |
19 | + | |
20 | + //账号输入框 | |
21 | + @FindBy (xpath="//*[@id='username']") | |
22 | + WebElement login_account; | |
23 | + | |
24 | + //密码输入框 | |
25 | + @FindBy (xpath="//*[@id='password']") | |
26 | + WebElement login_password; | |
27 | + | |
28 | + //登录按钮 | |
29 | + @FindBy (xpath="//*[@id='subBtn']") | |
30 | + WebElement login_submit; | |
31 | + | |
32 | + /* | |
33 | + * 页面方法 | |
34 | + */ | |
35 | + | |
36 | + /* | |
37 | + * 1.输入帐号 | |
38 | + * 2.输入密码 | |
39 | + * 3.点击登录 | |
40 | + * 4.将driver返回 | |
41 | + */ | |
42 | + public HomePage login(String account,String password) { | |
43 | + | |
44 | + sendKeys(login_account, account); | |
45 | + | |
46 | + sendKeys(login_password, password); | |
47 | + | |
48 | + click(login_submit); | |
49 | + | |
50 | + return new HomePage(driver); | |
51 | + | |
52 | + } | |
53 | +} | ... | ... |
src/test/java/com/essa/pageObject/SupplierOperationsTrackPage.java
0 → 100644
1 | +++ a/src/test/java/com/essa/pageObject/SupplierOperationsTrackPage.java | |
... | ... | @@ -0,0 +1,79 @@ |
1 | +package com.essa.pageObject; | |
2 | + | |
3 | +import org.openqa.selenium.WebDriver; | |
4 | +import org.openqa.selenium.WebElement; | |
5 | +import org.openqa.selenium.support.FindBy; | |
6 | + | |
7 | +import com.essa.framework.BasePage; | |
8 | + | |
9 | +public class SupplierOperationsTrackPage extends BasePage { | |
10 | + public SupplierOperationsTrackPage(WebDriver driver) { | |
11 | + super(driver); | |
12 | + } | |
13 | + | |
14 | + /* | |
15 | + * 元素定位 | |
16 | + */ | |
17 | + | |
18 | + // 查询输入框 | |
19 | + @FindBy(xpath = "//*[contains(text(),'关键字查询')]/../div/div/input") | |
20 | + WebElement query; | |
21 | + | |
22 | + // 查询按钮 | |
23 | + @FindBy(xpath = "//*[text()='查询']") | |
24 | + WebElement search; | |
25 | + | |
26 | + // 综合实力更新 | |
27 | + @FindBy(xpath = "//*/button[contains(text(),'综合实力更新')]") | |
28 | + WebElement supplierStrength; | |
29 | + | |
30 | + // 第一条查询结果(用于确定是否查询完毕) | |
31 | + @FindBy(xpath = "//*[@id='content-table']/tbody/tr[1]") | |
32 | + WebElement firstResult; | |
33 | + | |
34 | + // 检查点:自主发布商品数 | |
35 | + @FindBy(xpath = "//*[@id='content-table']/thead/tr/th[10]") | |
36 | + WebElement checkPoint; | |
37 | + | |
38 | + /* | |
39 | + * 页面方法 | |
40 | + */ | |
41 | + | |
42 | + // 输入要查询的文本 | |
43 | + public void searchText(String text) throws InterruptedException { | |
44 | + | |
45 | + // 输入要查询的供应商或者编号等,点击查询按钮 | |
46 | + | |
47 | + sendKeys(query, text); | |
48 | + | |
49 | + click(search); | |
50 | + | |
51 | + } | |
52 | + | |
53 | + // 检查是否进入平台运营跟进管理 | |
54 | + public boolean isSucceed() { | |
55 | + | |
56 | + return isThisPage("自主发布商品数", checkPoint); | |
57 | + | |
58 | + } | |
59 | + | |
60 | + // 跳转到综合实力更新 | |
61 | + public SupplierStrengthPage goToSupplierStrengthPage(String supplierName) throws InterruptedException { | |
62 | + /* | |
63 | + * 查询供应商,点击 综合实力更新,将driver传递至综合实力更新页面 | |
64 | + */ | |
65 | + searchText(supplierName); | |
66 | + | |
67 | + click(supplierStrength); | |
68 | + | |
69 | + | |
70 | + return new SupplierStrengthPage(driver); | |
71 | + | |
72 | + } | |
73 | + | |
74 | + // 列表是否有查询结果,没有则等待 | |
75 | + public void waitResult() throws InterruptedException { | |
76 | + while(!(firstResult.isDisplayed())) | |
77 | + Thread.sleep(1000); | |
78 | + } | |
79 | +} | ... | ... |
src/test/java/com/essa/pageObject/SupplierStrengthPage.java
0 → 100644
1 | +++ a/src/test/java/com/essa/pageObject/SupplierStrengthPage.java | |
... | ... | @@ -0,0 +1,307 @@ |
1 | +package com.essa.pageObject; | |
2 | + | |
3 | +import java.util.List; | |
4 | + | |
5 | +import org.openqa.selenium.By; | |
6 | +import org.openqa.selenium.WebDriver; | |
7 | +import org.openqa.selenium.WebElement; | |
8 | +import org.openqa.selenium.support.FindBy; | |
9 | + | |
10 | +import com.essa.framework.BasePage; | |
11 | + | |
12 | +public class SupplierStrengthPage extends BasePage{ | |
13 | + public SupplierStrengthPage(WebDriver driver) { | |
14 | + super(driver); | |
15 | + } | |
16 | + | |
17 | + | |
18 | + /* | |
19 | + * 元素定位 | |
20 | + */ | |
21 | + | |
22 | + //配合度 | |
23 | + @FindBy (xpath="//*[contains(text(),'配合度')]/../div[1]/div/select") | |
24 | + WebElement cooperateDegree; | |
25 | + | |
26 | + //主打产品定位 | |
27 | + @FindBy (xpath="//*[@dict-check-list='supplier_main_product_location']/select") | |
28 | + WebElement mainProduct; | |
29 | + | |
30 | + //是否有研发能力:否 | |
31 | + @FindBy (xpath = "//*[contains(text(),'是否有研发能力')]/../div/label[2]") | |
32 | + WebElement notDev; | |
33 | + | |
34 | + //是否研发能力:是 | |
35 | + @FindBy (xpath = "//*[contains(text(),'是否有研发能力')]/../div/label[1]") | |
36 | + WebElement isDev; | |
37 | + | |
38 | + //每个季度有新品推出 | |
39 | + @FindBy (xpath = ".//*[@class='col-md-20']/div/label[1]/input") | |
40 | + WebElement newGoodsEveryQuarter; | |
41 | + | |
42 | + //有配备工程师 | |
43 | + @FindBy (xpath =".//*[@class='col-md-20']/div/label[2]/input") | |
44 | + WebElement existsEngineer; | |
45 | + | |
46 | + //有产品研发团队 | |
47 | + @FindBy (xpath = ".//*[@class='col-md-20']/div/label[3]/input") | |
48 | + WebElement existsProductDev; | |
49 | + | |
50 | + //其他 | |
51 | + @FindBy (xpath = ".//*[@class='col-md-20']/div/label[4]/input") | |
52 | + WebElement others; | |
53 | + | |
54 | + //其他文本输入框 | |
55 | + @FindBy (xpath = ".//*[@ng-model='ctrl.model.otherDevelopmentAbilityValue']") | |
56 | + WebElement otherDevAbilValue; | |
57 | + | |
58 | + //是否有证书:是 | |
59 | + @FindBy (xpath = ".//*[contains(text(),'是否有证书')]/../div/label[1]") | |
60 | + WebElement isCertificate; | |
61 | + | |
62 | + //是否有证书:否 | |
63 | + @FindBy (xpath =".//*[contains(text(),'是否有证书')]/../div/label[2]") | |
64 | + WebElement notCertificate; | |
65 | + | |
66 | + //添加证书的“+” | |
67 | + @FindBy (xpath = ".//*[@list='ctrl.model.supplierCertificationList']/div[1]/div/button[1]") | |
68 | + WebElement addCertificate; | |
69 | + | |
70 | + /* | |
71 | + * 由于这个是动态表格,表格行数会变化,必须自己写方法来定位元素 | |
72 | + * 证书类型选择项,value值:0~8 0:BSCI,1:SA8000,2:ICTT…… | |
73 | + */ | |
74 | + public WebElement itemType(int i) { | |
75 | + String xpath = ".//*[@list='ctrl.model.supplierCertificationList']/div[1]/table/tbody/tr["+i+"]/td[2]/div/select"; | |
76 | + return driver.findElement(By.xpath(xpath)); | |
77 | + } | |
78 | + | |
79 | + //证书编号文本框 | |
80 | + public WebElement itemCode(int i) { | |
81 | + String xpath = ".//*[@list='ctrl.model.supplierCertificationList']/div[1]/table/tbody/tr["+i+"]/td[3]/input"; | |
82 | + return driver.findElement(By.xpath(xpath)); | |
83 | + } | |
84 | + | |
85 | + //证书说明文本框 | |
86 | + public WebElement itemDec(int i) { | |
87 | + String xpath = ".//*[@list='ctrl.model.supplierCertificationList']/div[1]/table/tbody/tr["+i+"]/td[4]/input"; | |
88 | + return driver.findElement(By.xpath(xpath)); | |
89 | + } | |
90 | + | |
91 | + //证书图片,用于判断图片是否上传成功 | |
92 | + public WebElement imge(int i) { | |
93 | + String xpath = ".//*[@list='ctrl.model.supplierCertificationList']/div[2]/div[2]/div/div["+i+"]/div[1]/img"; | |
94 | + return driver.findElement(By.xpath(xpath)); | |
95 | + } | |
96 | + | |
97 | + //添加证书文件 | |
98 | + public WebElement itemFile(int i) { | |
99 | + String xpath = ".//*[@list='ctrl.model.supplierCertificationList']/div[2]/div[2]/div/div["+i+"]/div[4]"; | |
100 | + return driver.findElement(By.xpath(xpath)); | |
101 | + } | |
102 | + | |
103 | + //已添加证书下的证书集合 | |
104 | + @FindBy (xpath = ".//*[@list='ctrl.model.supplierCertificationList']/div[1]/table/tbody/tr") | |
105 | + List<WebElement> checkBoxes; | |
106 | + | |
107 | + //是否服务过大客户:是 | |
108 | + @FindBy (xpath = ".//*[contains(text(),'是否服务过大客户')]/../div[1]/label[1]") | |
109 | + WebElement isServLargeCus; | |
110 | + | |
111 | + //是否服务过大客户:否 | |
112 | + @FindBy (xpath = ".//*[contains(text(),'是否服务过大客户')]/../div[1]/label[2]") | |
113 | + WebElement notServLargeCus; | |
114 | + | |
115 | + //服务过的大客户数 | |
116 | + @FindBy (xpath = ".//*[@list='ctrl.model.serviceLargeCustomerList']/div/table/tbody/tr") | |
117 | + List<WebElement> customers; | |
118 | + | |
119 | + //大客户的“+” | |
120 | + @FindBy (xpath = ".//*[@list='ctrl.model.serviceLargeCustomerList']/div/div/button[1]") | |
121 | + WebElement addCustomer; | |
122 | + | |
123 | + //大客户名称文本框 | |
124 | + public WebElement largeCusName(int i) { | |
125 | + String xpath = ".//*[@list='ctrl.model.serviceLargeCustomerList']/div/table/tbody/tr["+i+"]/td[2]/input"; | |
126 | + return driver.findElement(By.xpath(xpath)); | |
127 | + } | |
128 | + | |
129 | + //备注文本框 | |
130 | + public WebElement note(int i) { | |
131 | + String xpath = ".//*[@list='ctrl.model.serviceLargeCustomerList']/div/table/tbody/tr["+i+"]/td[3]/input"; | |
132 | + return driver.findElement(By.xpath(xpath)); | |
133 | + } | |
134 | + | |
135 | + //确定按钮 | |
136 | + @FindBy (xpath = "//*[text()='确定']") | |
137 | + WebElement submit; | |
138 | + | |
139 | + //标签页名称 | |
140 | + @FindBy (xpath ="//*/a[contains(text(),'综合实力评估')]") | |
141 | + WebElement labelName; | |
142 | + | |
143 | + //提交完成后,操作成功的弹框关闭按钮 | |
144 | + @FindBy (xpath="//*[@class='close']") | |
145 | + WebElement alertClosed; | |
146 | + | |
147 | + //关闭页面 | |
148 | + @FindBy(xpath = "//*[text()='综合实力评估']/../span") | |
149 | + WebElement closed; | |
150 | + | |
151 | + | |
152 | + /* | |
153 | + * 方法 | |
154 | + */ | |
155 | + | |
156 | + //选择配合度 | |
157 | + public void selectCooperateDegree(String cooperateGrade) { | |
158 | + | |
159 | + //选择配合度:高、中、低 | |
160 | + selectElement(cooperateDegree, cooperateGrade); | |
161 | + | |
162 | + } | |
163 | + | |
164 | + //是否有研发能力,参数可选 是/否 | |
165 | + public void isDevAblity(String ablity) { | |
166 | + if("是".equals(ablity)) | |
167 | + click(isDev); | |
168 | + else { | |
169 | + click(notDev); | |
170 | + } | |
171 | + } | |
172 | + | |
173 | + // | |
174 | + | |
175 | + //提交编辑 | |
176 | + public void submit() { | |
177 | + moveHeightScroll("0"); | |
178 | + click(submit); | |
179 | + | |
180 | + } | |
181 | + | |
182 | + //勾选每季度有新品推出 | |
183 | + public void newProduct() { | |
184 | + if(newGoodsEveryQuarter.isSelected());//判断是否已勾选 | |
185 | + else { | |
186 | + isElementExist(newGoodsEveryQuarter); | |
187 | + click(newGoodsEveryQuarter); | |
188 | + } | |
189 | + } | |
190 | + | |
191 | + //勾选有配备工程师 | |
192 | + public void haveEngineer() { | |
193 | + if(existsEngineer.isSelected()); | |
194 | + else { | |
195 | + isElementExist(existsEngineer); | |
196 | + click(existsEngineer); | |
197 | + } | |
198 | + } | |
199 | + | |
200 | + //勾选有研发团队 | |
201 | + public void haveTeam() { | |
202 | + if (existsProductDev.isSelected()); | |
203 | + else { | |
204 | + isElementExist(existsProductDev); | |
205 | + click(existsProductDev); | |
206 | + } | |
207 | + } | |
208 | + | |
209 | + //勾选“其他” | |
210 | + public void other() { | |
211 | + if(others.isSelected()); | |
212 | + else { | |
213 | + click(others); | |
214 | + isElementExist(otherDevAbilValue); | |
215 | + sendKeys(otherDevAbilValue, "我们每天都有新品推出!"); | |
216 | + } | |
217 | + } | |
218 | + | |
219 | + | |
220 | + //拖动滚动条,因为本页面如果数据量多,就看不到头部的关闭本页面的X | |
221 | + public void moveScroll() { | |
222 | + | |
223 | + moveHeightScroll("100"); | |
224 | + | |
225 | + } | |
226 | + | |
227 | + //检查是否列表加载完成 | |
228 | + public boolean isSucceed() throws InterruptedException { | |
229 | + while(!(labelName.isDisplayed())) { | |
230 | + Thread.sleep(1000); | |
231 | + } | |
232 | + return isElementExist(labelName); | |
233 | + | |
234 | + } | |
235 | + | |
236 | + //判断是否提交成功 | |
237 | + public boolean isSubmit() { | |
238 | + | |
239 | + return isElementExist(alertClosed); | |
240 | + | |
241 | + } | |
242 | + | |
243 | + //关闭“操作成功”提示 | |
244 | + public void alertClosed() { | |
245 | + click(alertClosed); | |
246 | + } | |
247 | + | |
248 | + /* | |
249 | + * 添加证书逻辑: | |
250 | + * 1.点击是否有证书:是 | |
251 | + * 2.点击“+” | |
252 | + * 3.统计已有x个证书 | |
253 | + * 4.i=x | |
254 | + * 5.选择证书类型WRAP,证书编号,证书说明,传证书图片 | |
255 | + * 6.判断证书是否上传成功,不成功则等待 | |
256 | + */ | |
257 | + public void addCertification() throws Exception { | |
258 | + click(isCertificate); | |
259 | + isElementExist(addCertificate); | |
260 | + click(addCertificate); | |
261 | + | |
262 | + java.util.List<WebElement> list= checkBoxes; | |
263 | + int x = list.size(); | |
264 | + | |
265 | + selectElement(itemType(x), "WRAP"); | |
266 | + sendKeys(itemCode(x), "20180331:"+x); | |
267 | + sendKeys(itemDec(x), "证书说明:这是第"+x+"个证书"); | |
268 | + click(itemFile(x)); | |
269 | + uploadFile("E:\\pic\\证书.jpg"); | |
270 | + | |
271 | + //如果图片是系统默认的图片,则等待1秒 | |
272 | + while("/img/nopic.jpg".equals(imge(x).getAttribute("ng-src"))) { | |
273 | + Thread.sleep(1000); | |
274 | + } | |
275 | + } | |
276 | + | |
277 | + /* | |
278 | + * 添加服务大客户记录 | |
279 | + * 先把滚动条拉下来,不然找不到元素 | |
280 | + * 1.是否服务过大客户,点击:是 | |
281 | + * 2.点击“+” | |
282 | + * 3.判断已有服务过的次数x,i=x | |
283 | + * 4.写入大客户名称,备注 | |
284 | + */ | |
285 | + public void addSerLargeCus() { | |
286 | + moveHeightScroll("0"); | |
287 | + click(isServLargeCus); | |
288 | + isElementExist(addCustomer); | |
289 | + click(addCustomer); | |
290 | + List<WebElement> list = customers; | |
291 | + int x = list.size(); | |
292 | + sendKeys(largeCusName(x), "第"+x+"大客户"); | |
293 | + sendKeys(note(x), "这个是备注信息"+x); | |
294 | + } | |
295 | + | |
296 | + //选择主打产品 | |
297 | + public void selMainProduct(String degree) { | |
298 | + selectElement(mainProduct, degree); | |
299 | + } | |
300 | + | |
301 | + //关闭本页面 | |
302 | + public void closed() { | |
303 | + | |
304 | + click(closed); | |
305 | + | |
306 | + } | |
307 | +} | ... | ... |
1 | +++ a/src/test/java/com/essa/testSuite/SendEmail.java | |
... | ... | @@ -0,0 +1,113 @@ |
1 | +package com.essa.testSuite; | |
2 | + | |
3 | +import java.util.Properties; | |
4 | + | |
5 | +import javax.activation.DataHandler; | |
6 | +import javax.activation.DataSource; | |
7 | +import javax.activation.FileDataSource; | |
8 | +import javax.mail.BodyPart; | |
9 | +import javax.mail.Message; | |
10 | +import javax.mail.MessagingException; | |
11 | +import javax.mail.Multipart; | |
12 | +import javax.mail.PasswordAuthentication; | |
13 | +import javax.mail.Session; | |
14 | +import javax.mail.Transport; | |
15 | +import javax.mail.internet.InternetAddress; | |
16 | +import javax.mail.internet.MimeBodyPart; | |
17 | +import javax.mail.internet.MimeMessage; | |
18 | +import javax.mail.internet.MimeMultipart; | |
19 | + | |
20 | +public class SendEmail { | |
21 | + | |
22 | + public static void main(String[] args) { | |
23 | + | |
24 | + // 创建一个Property文件对象 | |
25 | + Properties props = new Properties(); | |
26 | + | |
27 | + // 设置邮件服务器的信息,这里设置smtp主机名称 | |
28 | + props.put("mail.smtp.host", "smtp.qq.com"); | |
29 | + | |
30 | + // 设置socket factory 的端口 | |
31 | + props.put("mail.smtp.socketFactory.port", "465"); | |
32 | + | |
33 | + // 设置socket factory | |
34 | + props.put("mail.smtp.socketFactory.class","javax.net.ssl.SSLSocketFactory"); | |
35 | + | |
36 | + // 设置需要身份验证 | |
37 | + props.put("mail.smtp.auth", "true"); | |
38 | + | |
39 | + // 设置SMTP的端口,QQ的smtp端口是25 | |
40 | + props.put("mail.smtp.port", "25"); | |
41 | + | |
42 | + // 身份验证实现 | |
43 | + Session session = Session.getDefaultInstance(props, new javax.mail.Authenticator() { | |
44 | + | |
45 | + protected PasswordAuthentication getPasswordAuthentication() { | |
46 | + // 第二个参数,就是我QQ开启smtp的授权码 | |
47 | + return new PasswordAuthentication("278953238@qq.com", "pfpzqcamljytbjec"); | |
48 | + | |
49 | + } | |
50 | + | |
51 | + }); | |
52 | + | |
53 | + try { | |
54 | + | |
55 | + // 创建一个MimeMessage类的实例对象 | |
56 | + Message message = new MimeMessage(session); | |
57 | + | |
58 | + // 设置发件人邮箱地址 | |
59 | + message.setFrom(new InternetAddress("278953238@qq.com")); | |
60 | + | |
61 | + // 设置收件人邮箱地址 | |
62 | + message.setRecipients(Message.RecipientType.TO,InternetAddress.parse("3289714863@qq.com")); | |
63 | + | |
64 | + // 设置邮件主题 | |
65 | + message.setSubject("测试发送邮件"); | |
66 | + | |
67 | + // 创建一个MimeBodyPart的对象,以便添加内容 | |
68 | + BodyPart messageBodyPart1 = new MimeBodyPart(); | |
69 | + | |
70 | + // 设置邮件正文内容 | |
71 | + messageBodyPart1.setText("这个是邮件的正文部分"); | |
72 | + | |
73 | + // 创建另外一个MimeBodyPart对象,以便添加其他内容 | |
74 | + MimeBodyPart messageBodyPart2 = new MimeBodyPart(); | |
75 | + | |
76 | + // 设置邮件中附件文件的路径 | |
77 | + String filename = ".\\test-output\\emailable-report.html"; | |
78 | + | |
79 | + // 创建一个datasource对象,并传递文件 | |
80 | + DataSource source = new FileDataSource(filename); | |
81 | + | |
82 | + // 设置handler | |
83 | + messageBodyPart2.setDataHandler(new DataHandler(source)); | |
84 | + | |
85 | + // 加载文件 | |
86 | + messageBodyPart2.setFileName(filename); | |
87 | + | |
88 | + // 创建一个MimeMultipart类的实例对象 | |
89 | + Multipart multipart = new MimeMultipart(); | |
90 | + | |
91 | + // 添加正文1内容 | |
92 | + multipart.addBodyPart(messageBodyPart1); | |
93 | + | |
94 | + // 添加正文2内容 | |
95 | + multipart.addBodyPart(messageBodyPart2); | |
96 | + | |
97 | + // 设置内容 | |
98 | + message.setContent(multipart); | |
99 | + | |
100 | + // 最终发送邮件 | |
101 | + Transport.send(message); | |
102 | + | |
103 | + System.out.println("=====邮件已经发送====="); | |
104 | + | |
105 | + } catch (MessagingException e) { | |
106 | + | |
107 | + throw new RuntimeException(e); | |
108 | + | |
109 | + } | |
110 | + | |
111 | + } | |
112 | + | |
113 | +} | ... | ... |
src/test/java/com/essa/testSuite/Test_Development_Ability.java
0 → 100644
1 | +++ a/src/test/java/com/essa/testSuite/Test_Development_Ability.java | |
... | ... | @@ -0,0 +1,132 @@ |
1 | +package com.essa.testSuite; | |
2 | + | |
3 | +import static org.testng.Assert.assertEquals; | |
4 | + | |
5 | +import java.io.IOException; | |
6 | + | |
7 | +import org.openqa.selenium.WebDriver; | |
8 | +import org.openqa.selenium.support.PageFactory; | |
9 | +import org.testng.annotations.AfterClass; | |
10 | +import org.testng.annotations.BeforeClass; | |
11 | +import org.testng.annotations.DataProvider; | |
12 | +import org.testng.annotations.Test; | |
13 | +import org.testng.asserts.SoftAssert; | |
14 | + | |
15 | +import com.essa.pageObject.HomePage; | |
16 | +import com.essa.pageObject.SupplierOperationsTrackPage; | |
17 | +import com.essa.pageObject.SupplierStrengthPage; | |
18 | +import com.essa.pageObject.BaseTest; | |
19 | + | |
20 | +public class Test_Development_Ability extends BaseTest { | |
21 | + | |
22 | + WebDriver driver; | |
23 | + | |
24 | + // 登录 | |
25 | + @BeforeClass | |
26 | + public void setUp() throws IOException { | |
27 | + | |
28 | + initsetUp(); | |
29 | + | |
30 | + loginValid(); | |
31 | + | |
32 | + } | |
33 | + | |
34 | + // 切换到“供应商管理”菜单 | |
35 | + @Test | |
36 | + public void toSupplierOperationsTrack() { | |
37 | + | |
38 | + /* | |
39 | + * 由于我们只能对一个driver进行操作,要先将driver获取 我们要操作的页面为HomePage,所以要初始化一个HomePage对象 | |
40 | + * 调用进入平台运营管理,断言 | |
41 | + */ | |
42 | + this.driver = getDriver(); | |
43 | + | |
44 | + HomePage homePage = PageFactory.initElements(driver, HomePage.class); | |
45 | + | |
46 | + homePage.goToSupplierOperationsTrack(); | |
47 | + | |
48 | + assertEquals(homePage.isSearchSuppliers(), true, "切换到“供应商管理”菜单失败!"); | |
49 | + | |
50 | + } | |
51 | + | |
52 | + // 进入“平台运营跟进管理” 选择供应商,进入其综合实力评估页 | |
53 | + @Test(dataProvider = "suppliers", dependsOnMethods = { "toSupplierOperationsTrack" }) | |
54 | + public void editDevelopmentAbility(String supplier) throws Exception { | |
55 | + | |
56 | + SupplierOperationsTrackPage sotp = PageFactory.initElements(driver, SupplierOperationsTrackPage.class); | |
57 | + | |
58 | + // 断言是否进入页面 | |
59 | + | |
60 | + SoftAssert softAssert = new SoftAssert(); | |
61 | + | |
62 | + softAssert.assertEquals(sotp.isSucceed(), true, "进入平台运营跟进管理失败!"); | |
63 | + | |
64 | + | |
65 | + // 在列表中查找出要编辑的供应商(excel中的)进入实力评估页面 | |
66 | + | |
67 | + sotp.goToSupplierStrengthPage(supplier); | |
68 | + | |
69 | + SupplierStrengthPage strengthPage = PageFactory.initElements(driver, SupplierStrengthPage.class); | |
70 | + | |
71 | + softAssert.assertEquals(strengthPage.isSucceed(), true, "进入实力评估页面失败!"); | |
72 | + | |
73 | + /* | |
74 | + * 配合度选择“高”,主打产品:中高 | |
75 | + * 是否研发能力选择“是”,勾选:每个季度有新品推出,有配备工程师,产品研发团队,其他 | |
76 | + * 添加证书,服务过大客户 | |
77 | + * 点击提交 | |
78 | + */ | |
79 | + | |
80 | + strengthPage.selectCooperateDegree("高"); | |
81 | + Thread.sleep(500); | |
82 | + | |
83 | + strengthPage.selMainProduct("中高"); | |
84 | + Thread.sleep(500); | |
85 | + | |
86 | + strengthPage.isDevAblity("是"); | |
87 | + strengthPage.newProduct(); | |
88 | + strengthPage.haveEngineer(); | |
89 | + strengthPage.haveTeam(); | |
90 | + strengthPage.other(); | |
91 | + | |
92 | + strengthPage.addCertification(); | |
93 | + strengthPage.addSerLargeCus(); | |
94 | + | |
95 | + strengthPage.submit(); | |
96 | + Thread.sleep(1000); | |
97 | + | |
98 | + softAssert.assertEquals(strengthPage.isSubmit(), true, "提交失败!"); | |
99 | + | |
100 | + softAssert.assertAll(); | |
101 | + | |
102 | + strengthPage.alertClosed(); | |
103 | + | |
104 | + } | |
105 | + | |
106 | + | |
107 | + // 读取excel表格 表格位置在data文件夹下 表格名称为“供应商”,读取的sheet名称为“供应商” | |
108 | + @DataProvider(name = "suppliers") | |
109 | + public Object[][] suppliersData() { | |
110 | + | |
111 | + try { | |
112 | + | |
113 | + return com.essa.framework.BasePage.readExcel(".\\src\\main\\resources", "data.xlsx", "供应商"); | |
114 | + | |
115 | + } catch (Exception e) { | |
116 | + | |
117 | + e.printStackTrace(); | |
118 | + | |
119 | + return null; | |
120 | + | |
121 | + } | |
122 | + } | |
123 | + | |
124 | + // 测试完要清理,不占用资源 | |
125 | + | |
126 | + @AfterClass | |
127 | + public void tearDown() { | |
128 | + | |
129 | + driver.quit(); | |
130 | + | |
131 | + } | |
132 | +} | ... | ... |
1 | +++ a/src/test/java/com/essa/testSuite/Test_Login.java | |
... | ... | @@ -0,0 +1,100 @@ |
1 | +package com.essa.testSuite; | |
2 | + | |
3 | +import java.io.IOException; | |
4 | + | |
5 | +import org.openqa.selenium.WebDriver; | |
6 | +import org.openqa.selenium.support.PageFactory; | |
7 | +import org.testng.annotations.AfterClass; | |
8 | +import org.testng.annotations.BeforeClass; | |
9 | +import org.testng.annotations.DataProvider; | |
10 | +import org.testng.annotations.Test; | |
11 | +import org.testng.asserts.SoftAssert; | |
12 | + | |
13 | +import com.essa.framework.BrowserEngine; | |
14 | +import com.essa.pageObject.HomePage; | |
15 | +import com.essa.pageObject.LoginPage; | |
16 | + | |
17 | +public class Test_Login { | |
18 | + WebDriver driver; | |
19 | + | |
20 | + /* | |
21 | + * 调用浏览器,打开网页 | |
22 | + * 执行任何测试之前都应执行这个步骤 | |
23 | + * 后面我会把这个方法封装在pageObject.function里面 | |
24 | + */ | |
25 | + | |
26 | + @BeforeClass | |
27 | + public void setUp() throws IOException { | |
28 | + | |
29 | + BrowserEngine browserEngine = new BrowserEngine(); | |
30 | + | |
31 | + browserEngine.initConfigData(); | |
32 | + | |
33 | + driver = browserEngine.getBrowser(); | |
34 | + | |
35 | + } | |
36 | + | |
37 | + /* | |
38 | + * 初始化(实例化)一个登录页面 | |
39 | + * 做登录操作 | |
40 | + * 登录完后会跳转到后台首页 | |
41 | + * 故要初始化一个后台首页用于断言是否登录成功 | |
42 | + * 这里登录成功的标识是有“退出”按钮 | |
43 | + */ | |
44 | + | |
45 | + @Test(dataProvider="users") | |
46 | + public void login(String account,String password) { | |
47 | + | |
48 | + LoginPage loginPage = PageFactory.initElements(driver, LoginPage.class); | |
49 | + | |
50 | + loginPage.login(account, password); | |
51 | + | |
52 | + HomePage homePage = PageFactory.initElements(driver, HomePage.class); | |
53 | + | |
54 | + /* | |
55 | + * 软断言,即就算此用例失败,依然会继续执行 | |
56 | + * 断言后,做退出登录操作 | |
57 | + */ | |
58 | + | |
59 | + SoftAssert softAssert = new SoftAssert(); | |
60 | + | |
61 | + softAssert.assertEquals(homePage.isSucceed(), true, "登录失败!"); | |
62 | + | |
63 | + softAssert.assertAll(); | |
64 | + | |
65 | + homePage.logout(); | |
66 | + | |
67 | + } | |
68 | + | |
69 | + /* | |
70 | + * 提供数据对象 | |
71 | + * 此方法读取当前项目根目录下的data\\data.xlsx文件中的“users”工作表 | |
72 | + */ | |
73 | + | |
74 | + @DataProvider(name="users") | |
75 | + public Object[][] suppliersData() { | |
76 | + | |
77 | + try { | |
78 | + | |
79 | + return com.essa.framework.BasePage.readExcel(".\\src\\main\\resources", "data.xlsx", "users"); | |
80 | + | |
81 | + } catch (Exception e) { | |
82 | + | |
83 | + e.printStackTrace(); | |
84 | + | |
85 | + return null; | |
86 | + | |
87 | + } | |
88 | + } | |
89 | + | |
90 | + /* | |
91 | + * 最后要做清理工作,避免占用资源 | |
92 | + */ | |
93 | + | |
94 | + @AfterClass | |
95 | + public void tearDown() { | |
96 | + | |
97 | + driver.quit(); | |
98 | + | |
99 | + } | |
100 | +} | ... | ... |
1 | +++ a/suites/testng.xml | |
... | ... | @@ -0,0 +1,31 @@ |
1 | +<?xml version="1.0" encoding="UTF-8"?> | |
2 | +<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" > | |
3 | +<suite name="bpms自动化测试"> | |
4 | + <listeners> | |
5 | + <!-- 设置监听,测试完毕后会发送测试报告至qq邮箱 | |
6 | + <listener class-name="com.essa.framework.ListenerSuite"/> | |
7 | + --> | |
8 | + </listeners> | |
9 | + | |
10 | + <test name="login"> | |
11 | + <classes> | |
12 | + <!-- 选择要执行的测试类 --> | |
13 | + <class name="com.essa.testSuite.Test_Login"> | |
14 | + </class> | |
15 | + </classes> | |
16 | + </test> | |
17 | + | |
18 | + <!-- | |
19 | + <test name="编辑综合实力评估"> | |
20 | + <classes> | |
21 | + <class name="com.essa.testSuite.Test_Development_Ability"> | |
22 | + <methods> | |
23 | + <include name="editDevelopmentAbility"/> | |
24 | + <include name="toSupplierOperationsTrack"/> 切换到供应商管理菜单 | |
25 | + </methods> | |
26 | + </class> | |
27 | + </classes> | |
28 | + </test> | |
29 | + --> | |
30 | +</suite> | |
31 | + | ... | ... |
target/classes/META-INF/maven/com.essatest/essa/pom.properties
0 → 100644
1 | +++ a/target/classes/META-INF/maven/com.essatest/essa/pom.properties | |
... | ... | @@ -0,0 +1,7 @@ |
1 | +#Generated by Maven Integration for Eclipse | |
2 | +#Sat Apr 14 17:00:22 CST 2018 | |
3 | +version=0.0.1-SNAPSHOT | |
4 | +groupId=com.essatest | |
5 | +m2e.projectName=essa | |
6 | +m2e.projectLocation=E\:\\work\\essa | |
7 | +artifactId=essa | ... | ... |
target/classes/META-INF/maven/com.essatest/essa/pom.xml
0 → 100644
1 | +++ a/target/classes/META-INF/maven/com.essatest/essa/pom.xml | |
... | ... | @@ -0,0 +1,118 @@ |
1 | +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | |
2 | + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | |
3 | + <modelVersion>4.0.0</modelVersion> | |
4 | + | |
5 | + <groupId>com.essatest</groupId> | |
6 | + <artifactId>essa</artifactId> | |
7 | + <version>0.0.1-SNAPSHOT</version> | |
8 | + <packaging>jar</packaging> | |
9 | + | |
10 | + <name>essa</name> | |
11 | + <url>http://maven.apache.org</url> | |
12 | + | |
13 | + <properties> | |
14 | + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> | |
15 | + </properties> | |
16 | + | |
17 | +<dependencies> | |
18 | + | |
19 | + <dependency> | |
20 | + <groupId>org.testng</groupId> | |
21 | + <artifactId>testng</artifactId> | |
22 | + <version>6.14.2</version> | |
23 | + <scope>test</scope> | |
24 | + </dependency> | |
25 | + | |
26 | + <dependency> | |
27 | + <groupId>org.seleniumhq.selenium</groupId> | |
28 | + <artifactId>selenium-java</artifactId> | |
29 | + <version>3.11.0</version> | |
30 | + </dependency> | |
31 | + | |
32 | + | |
33 | + <dependency> | |
34 | + <groupId>org.seleniumhq.selenium</groupId> | |
35 | + <artifactId>selenium-firefox-driver</artifactId> | |
36 | + <version>3.11.0</version> | |
37 | + </dependency> | |
38 | + | |
39 | + <dependency> | |
40 | + <groupId>org.seleniumhq.selenium</groupId> | |
41 | + <artifactId>selenium-chrome-driver</artifactId> | |
42 | + <version>3.11.0</version> | |
43 | + </dependency> | |
44 | + | |
45 | + <dependency> | |
46 | + <groupId>org.seleniumhq.selenium</groupId> | |
47 | + <artifactId>selenium-safari-driver</artifactId> | |
48 | + <version>3.11.0</version> | |
49 | + </dependency> | |
50 | + | |
51 | + <dependency> | |
52 | + <groupId>org.seleniumhq.selenium</groupId> | |
53 | + <artifactId>selenium-ie-driver</artifactId> | |
54 | + <version>3.11.0</version> | |
55 | + </dependency> | |
56 | + | |
57 | + | |
58 | + <dependency> | |
59 | + <groupId>org.seleniumhq.selenium</groupId> | |
60 | + <artifactId>selenium-support</artifactId> | |
61 | + <version>2.46.0</version> | |
62 | + </dependency> | |
63 | + | |
64 | + <dependency> | |
65 | + <groupId>javax.mail</groupId> | |
66 | + <artifactId>mail</artifactId> | |
67 | + <version>1.4</version> | |
68 | + </dependency> | |
69 | + | |
70 | + <dependency> | |
71 | + <groupId>org.apache.commons</groupId> | |
72 | + <artifactId>commons-collections4</artifactId> | |
73 | + <version>4.1</version> | |
74 | + </dependency> | |
75 | + | |
76 | + <dependency> | |
77 | + <groupId>org.apache.poi</groupId> | |
78 | + <artifactId>poi</artifactId> | |
79 | + <version>3.17</version> | |
80 | + </dependency> | |
81 | + | |
82 | + <dependency> | |
83 | + <groupId>org.apache.poi</groupId> | |
84 | + <artifactId>poi-ooxml</artifactId> | |
85 | + <version>3.17</version> | |
86 | + </dependency> | |
87 | + | |
88 | + <dependency> | |
89 | + <groupId>org.apache.poi</groupId> | |
90 | + <artifactId>poi-ooxml-schemas</artifactId> | |
91 | + <version>3.17</version> | |
92 | + </dependency> | |
93 | + | |
94 | + <dependency> | |
95 | + <groupId>org.apache.commons</groupId> | |
96 | + <artifactId>commons-io</artifactId> | |
97 | + <version>1.3.2</version> | |
98 | + </dependency> | |
99 | + </dependencies> | |
100 | + | |
101 | + <build> | |
102 | + <plugins> | |
103 | + <plugin> | |
104 | + <groupId>org.apache.maven.plugins</groupId> | |
105 | + <artifactId>maven-surefire-plugin</artifactId> | |
106 | + <version>2.7.1</version> | |
107 | + <configuration> | |
108 | + <!--<testFailureIgnore>true</testFailureIgnore>--> | |
109 | + <suiteXmlFiles> | |
110 | + <suiteXmlFile>suites/testng.xml</suiteXmlFile> | |
111 | + <!--此处testng.xml即为要运行的testng.xml文件--> | |
112 | + </suiteXmlFiles> | |
113 | + </configuration> | |
114 | + </plugin> | |
115 | + </plugins> | |
116 | + </build> | |
117 | + | |
118 | +</project> | ... | ... |
No preview for this file type
No preview for this file type
No preview for this file type
target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
0 → 100644
1 | +++ a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst | ... | ... |
target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
0 → 100644
1 | +++ a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst | |
... | ... | @@ -0,0 +1,14 @@ |
1 | +E:\work\essa\src\main\java\com\essa\testSuite\Test_Development_Ability.java | |
2 | +E:\work\essa\src\main\java\com\essa\testSuite\Test_Login.java | |
3 | +E:\work\essa\src\main\java\com\essa\pageObject\LoginPage.java | |
4 | +E:\work\essa\src\main\java\com\essa\framework\BrowserEngine.java | |
5 | +E:\work\essa\src\main\java\com\essa\framework\ListenerSuite.java | |
6 | +E:\work\essa\src\main\java\com\essa\framework\LogType.java | |
7 | +E:\work\essa\src\main\java\com\essa\pageObject\SupplierOperationsTrackPage.java | |
8 | +E:\work\essa\src\main\java\com\essa\pageObject\SupplierStrengthPage.java | |
9 | +E:\work\essa\src\main\java\com\essa\framework\BasePage.java | |
10 | +E:\work\essa\src\main\java\com\essa\testSuite\SendEmail.java | |
11 | +E:\work\essa\src\main\java\com\essa\framework\SendEmail.java | |
12 | +E:\work\essa\src\main\java\com\essa\pageObject\BaseTest.java | |
13 | +E:\work\essa\src\main\java\com\essa\pageObject\HomePage.java | |
14 | +E:\work\essa\src\main\java\com\essa\framework\Logger.java | ... | ... |
target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
0 → 100644
1 | +++ a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst | ... | ... |
1 | +++ a/target/surefire-reports/TEST-TestSuite.xml | |
... | ... | @@ -0,0 +1,67 @@ |
1 | +<?xml version="1.0" encoding="UTF-8" ?> | |
2 | +<testsuite tests="2" failures="0" name="TestSuite" time="48.905" errors="0" skipped="0"> | |
3 | + <properties> | |
4 | + <property name="java.runtime.name" value="Java(TM) SE Runtime Environment"/> | |
5 | + <property name="sun.boot.library.path" value="C:\Java\jdk1.8.0_144\jre\bin"/> | |
6 | + <property name="java.vm.version" value="25.144-b01"/> | |
7 | + <property name="java.vm.vendor" value="Oracle Corporation"/> | |
8 | + <property name="java.vendor.url" value="http://java.oracle.com/"/> | |
9 | + <property name="path.separator" value=";"/> | |
10 | + <property name="java.vm.name" value="Java HotSpot(TM) Client VM"/> | |
11 | + <property name="file.encoding.pkg" value="sun.io"/> | |
12 | + <property name="user.script" value=""/> | |
13 | + <property name="user.country" value="CN"/> | |
14 | + <property name="sun.java.launcher" value="SUN_STANDARD"/> | |
15 | + <property name="sun.os.patch.level" value=""/> | |
16 | + <property name="java.vm.specification.name" value="Java Virtual Machine Specification"/> | |
17 | + <property name="user.dir" value="E:\work\essa"/> | |
18 | + <property name="java.runtime.version" value="1.8.0_144-b01"/> | |
19 | + <property name="java.awt.graphicsenv" value="sun.awt.Win32GraphicsEnvironment"/> | |
20 | + <property name="basedir" value="E:\work\essa"/> | |
21 | + <property name="java.endorsed.dirs" value="C:\Java\jdk1.8.0_144\jre\lib\endorsed"/> | |
22 | + <property name="os.arch" value="x86"/> | |
23 | + <property name="surefire.real.class.path" value="E:\work\essa\target\surefire\surefirebooter8959233717724126040.jar"/> | |
24 | + <property name="java.io.tmpdir" value="C:\Users\jin\AppData\Local\Temp\"/> | |
25 | + <property name="line.separator" value=" | |
26 | +"/> | |
27 | + <property name="java.vm.specification.vendor" value="Oracle Corporation"/> | |
28 | + <property name="user.variant" value=""/> | |
29 | + <property name="os.name" value="Windows 10"/> | |
30 | + <property name="sun.jnu.encoding" value="GBK"/> | |
31 | + <property name="java.library.path" value="C:\Java\jdk1.8.0_144\jre\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\apache-maven-3.5.3/bin;C:\Java\jdk1.8.0_144/bin;C:\Java\jdk1.8.0_144/bin;C:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Java\jdk1.8.0_144\bin;C:\Java\jdk1.8.0_144\jre\bin;;."/> | |
32 | + <property name="surefire.test.class.path" value="E:\work\essa\target\test-classes;E:\work\essa\target\classes;C:\Users\jin\.m2\repository\org\testng\testng\6.14.2\testng-6.14.2.jar;C:\Users\jin\.m2\repository\com\beust\jcommander\1.72\jcommander-1.72.jar;C:\Users\jin\.m2\repository\org\apache-extras\beanshell\bsh\2.0b6\bsh-2.0b6.jar;C:\Users\jin\.m2\repository\org\seleniumhq\selenium\selenium-java\3.11.0\selenium-java-3.11.0.jar;C:\Users\jin\.m2\repository\org\seleniumhq\selenium\selenium-api\3.11.0\selenium-api-3.11.0.jar;C:\Users\jin\.m2\repository\org\seleniumhq\selenium\selenium-edge-driver\3.11.0\selenium-edge-driver-3.11.0.jar;C:\Users\jin\.m2\repository\org\seleniumhq\selenium\selenium-opera-driver\3.11.0\selenium-opera-driver-3.11.0.jar;C:\Users\jin\.m2\repository\org\seleniumhq\selenium\selenium-remote-driver\3.11.0\selenium-remote-driver-3.11.0.jar;C:\Users\jin\.m2\repository\net\bytebuddy\byte-buddy\1.7.9\byte-buddy-1.7.9.jar;C:\Users\jin\.m2\repository\org\apache\commons\commons-exec\1.3\commons-exec-1.3.jar;C:\Users\jin\.m2\repository\commons-codec\commons-codec\1.10\commons-codec-1.10.jar;C:\Users\jin\.m2\repository\commons-logging\commons-logging\1.2\commons-logging-1.2.jar;C:\Users\jin\.m2\repository\com\google\code\gson\gson\2.8.2\gson-2.8.2.jar;C:\Users\jin\.m2\repository\com\google\guava\guava\23.6-jre\guava-23.6-jre.jar;C:\Users\jin\.m2\repository\com\google\code\findbugs\jsr305\1.3.9\jsr305-1.3.9.jar;C:\Users\jin\.m2\repository\org\checkerframework\checker-compat-qual\2.0.0\checker-compat-qual-2.0.0.jar;C:\Users\jin\.m2\repository\com\google\errorprone\error_prone_annotations\2.1.3\error_prone_annotations-2.1.3.jar;C:\Users\jin\.m2\repository\com\google\j2objc\j2objc-annotations\1.1\j2objc-annotations-1.1.jar;C:\Users\jin\.m2\repository\org\codehaus\mojo\animal-sniffer-annotations\1.14\animal-sniffer-annotations-1.14.jar;C:\Users\jin\.m2\repository\org\apache\httpcomponents\httpclient\4.5.3\httpclient-4.5.3.jar;C:\Users\jin\.m2\repository\org\apache\httpcomponents\httpcore\4.4.6\httpcore-4.4.6.jar;C:\Users\jin\.m2\repository\com\squareup\okhttp3\okhttp\3.9.1\okhttp-3.9.1.jar;C:\Users\jin\.m2\repository\com\squareup\okio\okio\1.13.0\okio-1.13.0.jar;C:\Users\jin\.m2\repository\org\seleniumhq\selenium\selenium-firefox-driver\3.11.0\selenium-firefox-driver-3.11.0.jar;C:\Users\jin\.m2\repository\org\seleniumhq\selenium\selenium-chrome-driver\3.11.0\selenium-chrome-driver-3.11.0.jar;C:\Users\jin\.m2\repository\org\seleniumhq\selenium\selenium-safari-driver\3.11.0\selenium-safari-driver-3.11.0.jar;C:\Users\jin\.m2\repository\org\seleniumhq\selenium\selenium-ie-driver\3.11.0\selenium-ie-driver-3.11.0.jar;C:\Users\jin\.m2\repository\org\seleniumhq\selenium\selenium-support\2.46.0\selenium-support-2.46.0.jar;C:\Users\jin\.m2\repository\javax\mail\mail\1.4\mail-1.4.jar;C:\Users\jin\.m2\repository\javax\activation\activation\1.1\activation-1.1.jar;C:\Users\jin\.m2\repository\org\apache\commons\commons-collections4\4.1\commons-collections4-4.1.jar;C:\Users\jin\.m2\repository\org\apache\poi\poi\3.17\poi-3.17.jar;C:\Users\jin\.m2\repository\org\apache\poi\poi-ooxml\3.17\poi-ooxml-3.17.jar;C:\Users\jin\.m2\repository\com\github\virtuald\curvesapi\1.04\curvesapi-1.04.jar;C:\Users\jin\.m2\repository\org\apache\poi\poi-ooxml-schemas\3.17\poi-ooxml-schemas-3.17.jar;C:\Users\jin\.m2\repository\org\apache\xmlbeans\xmlbeans\2.6.0\xmlbeans-2.6.0.jar;C:\Users\jin\.m2\repository\stax\stax-api\1.0.1\stax-api-1.0.1.jar;C:\Users\jin\.m2\repository\commons-io\commons-io\1.3.2\commons-io-1.3.2.jar;"/> | |
33 | + <property name="java.specification.name" value="Java Platform API Specification"/> | |
34 | + <property name="java.class.version" value="52.0"/> | |
35 | + <property name="sun.management.compiler" value="HotSpot Client Compiler"/> | |
36 | + <property name="os.version" value="10.0"/> | |
37 | + <property name="user.home" value="C:\Users\jin"/> | |
38 | + <property name="user.timezone" value="Asia/Shanghai"/> | |
39 | + <property name="java.awt.printerjob" value="sun.awt.windows.WPrinterJob"/> | |
40 | + <property name="java.specification.version" value="1.8"/> | |
41 | + <property name="file.encoding" value="GBK"/> | |
42 | + <property name="user.name" value="jin"/> | |
43 | + <property name="java.class.path" value="E:\work\essa\target\test-classes;E:\work\essa\target\classes;C:\Users\jin\.m2\repository\org\testng\testng\6.14.2\testng-6.14.2.jar;C:\Users\jin\.m2\repository\com\beust\jcommander\1.72\jcommander-1.72.jar;C:\Users\jin\.m2\repository\org\apache-extras\beanshell\bsh\2.0b6\bsh-2.0b6.jar;C:\Users\jin\.m2\repository\org\seleniumhq\selenium\selenium-java\3.11.0\selenium-java-3.11.0.jar;C:\Users\jin\.m2\repository\org\seleniumhq\selenium\selenium-api\3.11.0\selenium-api-3.11.0.jar;C:\Users\jin\.m2\repository\org\seleniumhq\selenium\selenium-edge-driver\3.11.0\selenium-edge-driver-3.11.0.jar;C:\Users\jin\.m2\repository\org\seleniumhq\selenium\selenium-opera-driver\3.11.0\selenium-opera-driver-3.11.0.jar;C:\Users\jin\.m2\repository\org\seleniumhq\selenium\selenium-remote-driver\3.11.0\selenium-remote-driver-3.11.0.jar;C:\Users\jin\.m2\repository\net\bytebuddy\byte-buddy\1.7.9\byte-buddy-1.7.9.jar;C:\Users\jin\.m2\repository\org\apache\commons\commons-exec\1.3\commons-exec-1.3.jar;C:\Users\jin\.m2\repository\commons-codec\commons-codec\1.10\commons-codec-1.10.jar;C:\Users\jin\.m2\repository\commons-logging\commons-logging\1.2\commons-logging-1.2.jar;C:\Users\jin\.m2\repository\com\google\code\gson\gson\2.8.2\gson-2.8.2.jar;C:\Users\jin\.m2\repository\com\google\guava\guava\23.6-jre\guava-23.6-jre.jar;C:\Users\jin\.m2\repository\com\google\code\findbugs\jsr305\1.3.9\jsr305-1.3.9.jar;C:\Users\jin\.m2\repository\org\checkerframework\checker-compat-qual\2.0.0\checker-compat-qual-2.0.0.jar;C:\Users\jin\.m2\repository\com\google\errorprone\error_prone_annotations\2.1.3\error_prone_annotations-2.1.3.jar;C:\Users\jin\.m2\repository\com\google\j2objc\j2objc-annotations\1.1\j2objc-annotations-1.1.jar;C:\Users\jin\.m2\repository\org\codehaus\mojo\animal-sniffer-annotations\1.14\animal-sniffer-annotations-1.14.jar;C:\Users\jin\.m2\repository\org\apache\httpcomponents\httpclient\4.5.3\httpclient-4.5.3.jar;C:\Users\jin\.m2\repository\org\apache\httpcomponents\httpcore\4.4.6\httpcore-4.4.6.jar;C:\Users\jin\.m2\repository\com\squareup\okhttp3\okhttp\3.9.1\okhttp-3.9.1.jar;C:\Users\jin\.m2\repository\com\squareup\okio\okio\1.13.0\okio-1.13.0.jar;C:\Users\jin\.m2\repository\org\seleniumhq\selenium\selenium-firefox-driver\3.11.0\selenium-firefox-driver-3.11.0.jar;C:\Users\jin\.m2\repository\org\seleniumhq\selenium\selenium-chrome-driver\3.11.0\selenium-chrome-driver-3.11.0.jar;C:\Users\jin\.m2\repository\org\seleniumhq\selenium\selenium-safari-driver\3.11.0\selenium-safari-driver-3.11.0.jar;C:\Users\jin\.m2\repository\org\seleniumhq\selenium\selenium-ie-driver\3.11.0\selenium-ie-driver-3.11.0.jar;C:\Users\jin\.m2\repository\org\seleniumhq\selenium\selenium-support\2.46.0\selenium-support-2.46.0.jar;C:\Users\jin\.m2\repository\javax\mail\mail\1.4\mail-1.4.jar;C:\Users\jin\.m2\repository\javax\activation\activation\1.1\activation-1.1.jar;C:\Users\jin\.m2\repository\org\apache\commons\commons-collections4\4.1\commons-collections4-4.1.jar;C:\Users\jin\.m2\repository\org\apache\poi\poi\3.17\poi-3.17.jar;C:\Users\jin\.m2\repository\org\apache\poi\poi-ooxml\3.17\poi-ooxml-3.17.jar;C:\Users\jin\.m2\repository\com\github\virtuald\curvesapi\1.04\curvesapi-1.04.jar;C:\Users\jin\.m2\repository\org\apache\poi\poi-ooxml-schemas\3.17\poi-ooxml-schemas-3.17.jar;C:\Users\jin\.m2\repository\org\apache\xmlbeans\xmlbeans\2.6.0\xmlbeans-2.6.0.jar;C:\Users\jin\.m2\repository\stax\stax-api\1.0.1\stax-api-1.0.1.jar;C:\Users\jin\.m2\repository\commons-io\commons-io\1.3.2\commons-io-1.3.2.jar;"/> | |
44 | + <property name="java.vm.specification.version" value="1.8"/> | |
45 | + <property name="sun.arch.data.model" value="32"/> | |
46 | + <property name="java.home" value="C:\Java\jdk1.8.0_144\jre"/> | |
47 | + <property name="sun.java.command" value="E:\work\essa\target\surefire\surefirebooter8959233717724126040.jar E:\work\essa\target\surefire\surefire2809287539438424410tmp E:\work\essa\target\surefire\surefire4282035049965679832tmp"/> | |
48 | + <property name="java.specification.vendor" value="Oracle Corporation"/> | |
49 | + <property name="user.language" value="zh"/> | |
50 | + <property name="awt.toolkit" value="sun.awt.windows.WToolkit"/> | |
51 | + <property name="java.vm.info" value="mixed mode"/> | |
52 | + <property name="java.version" value="1.8.0_144"/> | |
53 | + <property name="java.ext.dirs" value="C:\Java\jdk1.8.0_144\jre\lib\ext;C:\Windows\Sun\Java\lib\ext"/> | |
54 | + <property name="sun.boot.class.path" value="C:\Java\jdk1.8.0_144\jre\lib\resources.jar;C:\Java\jdk1.8.0_144\jre\lib\rt.jar;C:\Java\jdk1.8.0_144\jre\lib\sunrsasign.jar;C:\Java\jdk1.8.0_144\jre\lib\jsse.jar;C:\Java\jdk1.8.0_144\jre\lib\jce.jar;C:\Java\jdk1.8.0_144\jre\lib\charsets.jar;C:\Java\jdk1.8.0_144\jre\lib\jfr.jar;C:\Java\jdk1.8.0_144\jre\classes"/> | |
55 | + <property name="webdriver.chrome.driver" value=".\src\main\resources\chromedriver.exe"/> | |
56 | + <property name="java.vendor" value="Oracle Corporation"/> | |
57 | + <property name="localRepository" value="C:\Users\jin\.m2\repository"/> | |
58 | + <property name="file.separator" value="\"/> | |
59 | + <property name="java.vendor.url.bug" value="http://bugreport.sun.com/bugreport/"/> | |
60 | + <property name="sun.cpu.endian" value="little"/> | |
61 | + <property name="sun.io.unicode.encoding" value="UnicodeLittle"/> | |
62 | + <property name="sun.desktop" value="windows"/> | |
63 | + <property name="sun.cpu.isalist" value=""/> | |
64 | + </properties> | |
65 | + <testcase classname="com.essa.testSuite.Test_Login" name="login" time="8.68"/> | |
66 | + <testcase classname="com.essa.testSuite.Test_Login" name="login" time="10.97"/> | |
67 | +</testsuite> | |
0 | 68 | \ No newline at end of file | ... | ... |
1 | +++ a/target/surefire-reports/TestSuite.txt | |
... | ... | @@ -0,0 +1,4 @@ |
1 | +------------------------------------------------------------------------------- | |
2 | +Test set: TestSuite | |
3 | +------------------------------------------------------------------------------- | |
4 | +Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 48.906 sec | ... | ... |
1 | +++ a/target/surefire-reports/bpms自动化测试/login.html | |
... | ... | @@ -0,0 +1,89 @@ |
1 | +<html> | |
2 | +<head> | |
3 | +<title>TestNG: login</title> | |
4 | +<link href="../testng.css" rel="stylesheet" type="text/css" /> | |
5 | +<link href="../my-testng.css" rel="stylesheet" type="text/css" /> | |
6 | + | |
7 | +<style type="text/css"> | |
8 | +.log { display: none;} | |
9 | +.stack-trace { display: none;} | |
10 | +</style> | |
11 | +<script type="text/javascript"> | |
12 | +<!-- | |
13 | +function flip(e) { | |
14 | + current = e.style.display; | |
15 | + if (current == 'block') { | |
16 | + e.style.display = 'none'; | |
17 | + return 0; | |
18 | + } | |
19 | + else { | |
20 | + e.style.display = 'block'; | |
21 | + return 1; | |
22 | + } | |
23 | +} | |
24 | + | |
25 | +function toggleBox(szDivId, elem, msg1, msg2) | |
26 | +{ | |
27 | + var res = -1; if (document.getElementById) { | |
28 | + res = flip(document.getElementById(szDivId)); | |
29 | + } | |
30 | + else if (document.all) { | |
31 | + // this is the way old msie versions work | |
32 | + res = flip(document.all[szDivId]); | |
33 | + } | |
34 | + if(elem) { | |
35 | + if(res == 0) elem.innerHTML = msg1; else elem.innerHTML = msg2; | |
36 | + } | |
37 | + | |
38 | +} | |
39 | + | |
40 | +function toggleAllBoxes() { | |
41 | + if (document.getElementsByTagName) { | |
42 | + d = document.getElementsByTagName('div'); | |
43 | + for (i = 0; i < d.length; i++) { | |
44 | + if (d[i].className == 'log') { | |
45 | + flip(d[i]); | |
46 | + } | |
47 | + } | |
48 | + } | |
49 | +} | |
50 | + | |
51 | +// --> | |
52 | +</script> | |
53 | + | |
54 | +</head> | |
55 | +<body> | |
56 | +<h2 align='center'>login</h2><table border='1' align="center"> | |
57 | +<tr> | |
58 | +<td>Tests passed/Failed/Skipped:</td><td>2/0/0</td> | |
59 | +</tr><tr> | |
60 | +<td>Started on:</td><td>Tue Apr 10 18:25:13 CST 2018</td> | |
61 | +</tr> | |
62 | +<tr><td>Total time:</td><td>44 seconds (44303 ms)</td> | |
63 | +</tr><tr> | |
64 | +<td>Included groups:</td><td></td> | |
65 | +</tr><tr> | |
66 | +<td>Excluded groups:</td><td></td> | |
67 | +</tr> | |
68 | +</table><p/> | |
69 | +<small><i>(Hover the method name to see the test class name)</i></small><p/> | |
70 | +<table width='100%' border='1' class='invocation-passed'> | |
71 | +<tr><td colspan='4' align='center'><b>PASSED TESTS</b></td></tr> | |
72 | +<tr><td><b>Test method</b></td> | |
73 | +<td width="30%"><b>Exception</b></td> | |
74 | +<td width="10%"><b>Time (seconds)</b></td> | |
75 | +<td><b>Instance</b></td> | |
76 | +</tr> | |
77 | +<tr> | |
78 | +<td title='com.essa.testSuite.Test_Login.login()'><b>login</b><br>Test class: com.essa.testSuite.Test_Login<br>Parameters: admin, essa123</td> | |
79 | +<td></td> | |
80 | +<td>8</td> | |
81 | +<td>com.essa.testSuite.Test_Login@1b6a447</td></tr> | |
82 | +<tr> | |
83 | +<td title='com.essa.testSuite.Test_Login.login()'><b>login</b><br>Test class: com.essa.testSuite.Test_Login<br>Parameters: linrong, essa123</td> | |
84 | +<td></td> | |
85 | +<td>10</td> | |
86 | +<td>com.essa.testSuite.Test_Login@1b6a447</td></tr> | |
87 | +</table><p> | |
88 | +</body> | |
89 | +</html> | |
0 | 90 | \ No newline at end of file | ... | ... |
1 | +++ a/target/surefire-reports/bpms自动化测试/login.xml | |
... | ... | @@ -0,0 +1,6 @@ |
1 | +<?xml version="1.0" encoding="UTF-8"?> | |
2 | +<!-- Generated by org.testng.reporters.JUnitXMLReporter --> | |
3 | +<testsuite hostname="DESKTOP-NIGE62D" ignored="0" name="login" tests="2" failures="0" timestamp="10 四月 2018 10:25:58 GMT" time="44.303" errors="0"> | |
4 | + <testcase name="login" time="8.676" classname="com.essa.testSuite.Test_Login"/> | |
5 | + <testcase name="login" time="10.933" classname="com.essa.testSuite.Test_Login"/> | |
6 | +</testsuite> <!-- login --> | ... | ... |
1 | +++ a/target/surefire-reports/bpms自动化测试报告/login.html | |
... | ... | @@ -0,0 +1,89 @@ |
1 | +<html> | |
2 | +<head> | |
3 | +<title>TestNG: login</title> | |
4 | +<link href="../testng.css" rel="stylesheet" type="text/css" /> | |
5 | +<link href="../my-testng.css" rel="stylesheet" type="text/css" /> | |
6 | + | |
7 | +<style type="text/css"> | |
8 | +.log { display: none;} | |
9 | +.stack-trace { display: none;} | |
10 | +</style> | |
11 | +<script type="text/javascript"> | |
12 | +<!-- | |
13 | +function flip(e) { | |
14 | + current = e.style.display; | |
15 | + if (current == 'block') { | |
16 | + e.style.display = 'none'; | |
17 | + return 0; | |
18 | + } | |
19 | + else { | |
20 | + e.style.display = 'block'; | |
21 | + return 1; | |
22 | + } | |
23 | +} | |
24 | + | |
25 | +function toggleBox(szDivId, elem, msg1, msg2) | |
26 | +{ | |
27 | + var res = -1; if (document.getElementById) { | |
28 | + res = flip(document.getElementById(szDivId)); | |
29 | + } | |
30 | + else if (document.all) { | |
31 | + // this is the way old msie versions work | |
32 | + res = flip(document.all[szDivId]); | |
33 | + } | |
34 | + if(elem) { | |
35 | + if(res == 0) elem.innerHTML = msg1; else elem.innerHTML = msg2; | |
36 | + } | |
37 | + | |
38 | +} | |
39 | + | |
40 | +function toggleAllBoxes() { | |
41 | + if (document.getElementsByTagName) { | |
42 | + d = document.getElementsByTagName('div'); | |
43 | + for (i = 0; i < d.length; i++) { | |
44 | + if (d[i].className == 'log') { | |
45 | + flip(d[i]); | |
46 | + } | |
47 | + } | |
48 | + } | |
49 | +} | |
50 | + | |
51 | +// --> | |
52 | +</script> | |
53 | + | |
54 | +</head> | |
55 | +<body> | |
56 | +<h2 align='center'>login</h2><table border='1' align="center"> | |
57 | +<tr> | |
58 | +<td>Tests passed/Failed/Skipped:</td><td>2/0/0</td> | |
59 | +</tr><tr> | |
60 | +<td>Started on:</td><td>Tue Apr 10 18:11:16 CST 2018</td> | |
61 | +</tr> | |
62 | +<tr><td>Total time:</td><td>22 seconds (22999 ms)</td> | |
63 | +</tr><tr> | |
64 | +<td>Included groups:</td><td></td> | |
65 | +</tr><tr> | |
66 | +<td>Excluded groups:</td><td></td> | |
67 | +</tr> | |
68 | +</table><p/> | |
69 | +<small><i>(Hover the method name to see the test class name)</i></small><p/> | |
70 | +<table width='100%' border='1' class='invocation-passed'> | |
71 | +<tr><td colspan='4' align='center'><b>PASSED TESTS</b></td></tr> | |
72 | +<tr><td><b>Test method</b></td> | |
73 | +<td width="30%"><b>Exception</b></td> | |
74 | +<td width="10%"><b>Time (seconds)</b></td> | |
75 | +<td><b>Instance</b></td> | |
76 | +</tr> | |
77 | +<tr> | |
78 | +<td title='com.essa.testSuite.Test_Login.login()'><b>login</b><br>Test class: com.essa.testSuite.Test_Login<br>Parameters: admin, essa123</td> | |
79 | +<td></td> | |
80 | +<td>5</td> | |
81 | +<td>com.essa.testSuite.Test_Login@1b6a447</td></tr> | |
82 | +<tr> | |
83 | +<td title='com.essa.testSuite.Test_Login.login()'><b>login</b><br>Test class: com.essa.testSuite.Test_Login<br>Parameters: linrong, essa123</td> | |
84 | +<td></td> | |
85 | +<td>5</td> | |
86 | +<td>com.essa.testSuite.Test_Login@1b6a447</td></tr> | |
87 | +</table><p> | |
88 | +</body> | |
89 | +</html> | |
0 | 90 | \ No newline at end of file | ... | ... |
1 | +++ a/target/surefire-reports/bpms自动化测试报告/login.xml | |
... | ... | @@ -0,0 +1,6 @@ |
1 | +<?xml version="1.0" encoding="UTF-8"?> | |
2 | +<!-- Generated by org.testng.reporters.JUnitXMLReporter --> | |
3 | +<testsuite hostname="DESKTOP-NIGE62D" ignored="0" name="login" tests="2" failures="0" timestamp="10 四月 2018 10:11:39 GMT" time="22.999" errors="0"> | |
4 | + <testcase name="login" time="5.599" classname="com.essa.testSuite.Test_Login"/> | |
5 | + <testcase name="login" time="5.314" classname="com.essa.testSuite.Test_Login"/> | |
6 | +</testsuite> <!-- login --> | ... | ... |
target/surefire-reports/bpms自动化测试报告/testng-failed.xml
0 → 100644
1 | +++ a/target/surefire-reports/bpms自动化测试报告/testng-failed.xml | |
... | ... | @@ -0,0 +1,18 @@ |
1 | +<?xml version="1.0" encoding="UTF-8"?> | |
2 | +<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> | |
3 | +<suite guice-stage="DEVELOPMENT" verbose="0" name="Failed suite [bpms自动化测试报告]"> | |
4 | + <listeners> | |
5 | + <listener class-name="com.essa.framework.ListenerSuite"/> | |
6 | + </listeners> | |
7 | + <test thread-count="5" verbose="0" name="login(failed)"> | |
8 | + <classes> | |
9 | + <class name="com.essa.testSuite.Test_Login"> | |
10 | + <methods> | |
11 | + <include name="setUp"/> | |
12 | + <include name="login"/> | |
13 | + <include name="tearDown"/> | |
14 | + </methods> | |
15 | + </class> <!-- com.essa.testSuite.Test_Login --> | |
16 | + </classes> | |
17 | + </test> <!-- login(failed) --> | |
18 | +</suite> <!-- Failed suite [bpms自动化测试报告] --> | ... | ... |
356 Bytes
157 Bytes
1 | +++ a/target/surefire-reports/emailable-report.html | |
... | ... | @@ -0,0 +1,19 @@ |
1 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
2 | +<html xmlns="http://www.w3.org/1999/xhtml"> | |
3 | +<head> | |
4 | +<meta http-equiv="content-type" content="text/html; charset=UTF-8"/> | |
5 | +<title>TestNG Report</title> | |
6 | +<style type="text/css">table {margin-bottom:10px;border-collapse:collapse;empty-cells:show}th,td {border:1px solid #009;padding:.25em .5em}th {vertical-align:bottom}td {vertical-align:top}table a {font-weight:bold}.stripe td {background-color: #E6EBF9}.num {text-align:right}.passedodd td {background-color: #3F3}.passedeven td {background-color: #0A0}.skippedodd td {background-color: #DDD}.skippedeven td {background-color: #CCC}.failedodd td,.attn {background-color: #F33}.failedeven td,.stripe .attn {background-color: #D00}.stacktrace {white-space:pre;font-family:monospace}.totop {font-size:85%;text-align:center;border-bottom:2px solid #000}.invisible {display:none}</style> | |
7 | +</head> | |
8 | +<body> | |
9 | +<table> | |
10 | +<tr><th>Test</th><th># Passed</th><th># Skipped</th><th># Failed</th><th>Time (ms)</th><th>Included Groups</th><th>Excluded Groups</th></tr> | |
11 | +<tr><th colspan="7">bpms自动化测试</th></tr> | |
12 | +<tr><td><a href="#t0">login</a></td><td class="num">2</td><td class="num">0</td><td class="num">0</td><td class="num">44,303</td><td></td><td></td></tr> | |
13 | +</table> | |
14 | +<table id='summary'><thead><tr><th>Class</th><th>Method</th><th>Start</th><th>Time (ms)</th></tr></thead><tbody><tr><th colspan="4">bpms自动化测试</th></tr></tbody><tbody id="t0"><tr><th colspan="4">login — passed</th></tr><tr class="passedeven"><td rowspan="2">com.essa.testSuite.Test_Login</td><td><a href="#m0">login</a></td><td rowspan="2">1523355930019</td><td rowspan="2">8676</td></tr><tr class="passedeven"><td><a href="#m1">login</a></td></tr></tbody> | |
15 | +</table> | |
16 | +<h2>login</h2><h3 id="m0">com.essa.testSuite.Test_Login#login</h3><table class="result"><tr class="param"><th>Parameter #1</th><th>Parameter #2</th></tr><tr class="param stripe"><td>admin</td><td>essa123</td></tr></table><p class="totop"><a href="#summary">back to summary</a></p> | |
17 | +<h3 id="m1">com.essa.testSuite.Test_Login#login</h3><table class="result"><tr class="param"><th>Parameter #1</th><th>Parameter #2</th></tr><tr class="param stripe"><td>linrong</td><td>essa123</td></tr></table><p class="totop"><a href="#summary">back to summary</a></p> | |
18 | +</body> | |
19 | +</html> | ... | ... |
977 Bytes
1 | +++ a/target/surefire-reports/index.html | |
... | ... | @@ -0,0 +1,265 @@ |
1 | +<!DOCTYPE html> | |
2 | + | |
3 | +<html> | |
4 | + <head> | |
5 | + <meta charset='utf-8'> | |
6 | + <title>TestNG reports</title> | |
7 | + | |
8 | + <link type="text/css" href="testng-reports.css" rel="stylesheet" /> | |
9 | + <script type="text/javascript" src="jquery-1.7.1.min.js"></script> | |
10 | + <script type="text/javascript" src="testng-reports.js"></script> | |
11 | + <script type="text/javascript" src="https://www.google.com/jsapi"></script> | |
12 | + <script type='text/javascript'> | |
13 | + google.load('visualization', '1', {packages:['table']}); | |
14 | + google.setOnLoadCallback(drawTable); | |
15 | + var suiteTableInitFunctions = new Array(); | |
16 | + var suiteTableData = new Array(); | |
17 | + </script> | |
18 | + <!-- | |
19 | + <script type="text/javascript" src="jquery-ui/js/jquery-ui-1.8.16.custom.min.js"></script> | |
20 | + --> | |
21 | + </head> | |
22 | + | |
23 | + <body> | |
24 | + <div class="top-banner-root"> | |
25 | + <span class="top-banner-title-font">Test results</span> | |
26 | + <br/> | |
27 | + <span class="top-banner-font-1">1 suite</span> | |
28 | + </div> <!-- top-banner-root --> | |
29 | + <div class="navigator-root"> | |
30 | + <div class="navigator-suite-header"> | |
31 | + <span>All suites</span> | |
32 | + <a href="#" class="collapse-all-link" title="Collapse/expand all the suites"> | |
33 | + <img class="collapse-all-icon" src="collapseall.gif"> | |
34 | + </img> <!-- collapse-all-icon --> | |
35 | + </a> <!-- collapse-all-link --> | |
36 | + </div> <!-- navigator-suite-header --> | |
37 | + <div class="suite"> | |
38 | + <div class="rounded-window"> | |
39 | + <div class="suite-header light-rounded-window-top"> | |
40 | + <a href="#" class="navigator-link" panel-name="suite-bpms自动化测试"> | |
41 | + <span class="suite-name border-passed">bpms自动化测试</span> | |
42 | + </a> <!-- navigator-link --> | |
43 | + </div> <!-- suite-header light-rounded-window-top --> | |
44 | + <div class="navigator-suite-content"> | |
45 | + <div class="suite-section-title"> | |
46 | + <span>Info</span> | |
47 | + </div> <!-- suite-section-title --> | |
48 | + <div class="suite-section-content"> | |
49 | + <ul> | |
50 | + <li> | |
51 | + <a href="#" class="navigator-link " panel-name="test-xml-bpms自动化测试"> | |
52 | + <span>E:\work\essa\suites\testng.xml</span> | |
53 | + </a> <!-- navigator-link --> | |
54 | + </li> | |
55 | + <li> | |
56 | + <a href="#" class="navigator-link " panel-name="testlist-bpms自动化测试"> | |
57 | + <span class="test-stats">1 test</span> | |
58 | + </a> <!-- navigator-link --> | |
59 | + </li> | |
60 | + <li> | |
61 | + <a href="#" class="navigator-link " panel-name="group-bpms自动化测试"> | |
62 | + <span>0 groups</span> | |
63 | + </a> <!-- navigator-link --> | |
64 | + </li> | |
65 | + <li> | |
66 | + <a href="#" class="navigator-link " panel-name="times-bpms自动化测试"> | |
67 | + <span>Times</span> | |
68 | + </a> <!-- navigator-link --> | |
69 | + </li> | |
70 | + <li> | |
71 | + <a href="#" class="navigator-link " panel-name="reporter-bpms自动化测试"> | |
72 | + <span>Reporter output</span> | |
73 | + </a> <!-- navigator-link --> | |
74 | + </li> | |
75 | + <li> | |
76 | + <a href="#" class="navigator-link " panel-name="ignored-methods-bpms自动化测试"> | |
77 | + <span>Ignored methods</span> | |
78 | + </a> <!-- navigator-link --> | |
79 | + </li> | |
80 | + <li> | |
81 | + <a href="#" class="navigator-link " panel-name="chronological-bpms自动化测试"> | |
82 | + <span>Chronological view</span> | |
83 | + </a> <!-- navigator-link --> | |
84 | + </li> | |
85 | + </ul> | |
86 | + </div> <!-- suite-section-content --> | |
87 | + <div class="result-section"> | |
88 | + <div class="suite-section-title"> | |
89 | + <span>Results</span> | |
90 | + </div> <!-- suite-section-title --> | |
91 | + <div class="suite-section-content"> | |
92 | + <ul> | |
93 | + <li> | |
94 | + <span class="method-stats">2 methods, 2 passed</span> | |
95 | + </li> | |
96 | + <li> | |
97 | + <span class="method-list-title passed">Passed methods</span> | |
98 | + <span class="show-or-hide-methods passed"> | |
99 | + <a href="#" panel-name="suite-bpms自动化测试" class="hide-methods passed suite-bpms自动化测试"> (hide)</a> <!-- hide-methods passed suite-bpms自动化测试 --> | |
100 | + <a href="#" panel-name="suite-bpms自动化测试" class="show-methods passed suite-bpms自动化测试"> (show)</a> <!-- show-methods passed suite-bpms自动化测试 --> | |
101 | + </span> | |
102 | + <div class="method-list-content passed suite-bpms自动化测试"> | |
103 | + <span> | |
104 | + <img width="3%" src="passed.png"/> | |
105 | + <a href="#" class="method navigator-link" panel-name="suite-bpms自动化测试" title="com.essa.testSuite.Test_Login" hash-for-method="login(admin, essa123)">login(admin, essa123)</a> <!-- method navigator-link --> | |
106 | + </span> | |
107 | + <br/> | |
108 | + <span> | |
109 | + <img width="3%" src="passed.png"/> | |
110 | + <a href="#" class="method navigator-link" panel-name="suite-bpms自动化测试" title="com.essa.testSuite.Test_Login" hash-for-method="login(linrong, essa123)">login(linrong, essa123)</a> <!-- method navigator-link --> | |
111 | + </span> | |
112 | + <br/> | |
113 | + </div> <!-- method-list-content passed suite-bpms自动化测试 --> | |
114 | + </li> | |
115 | + </ul> | |
116 | + </div> <!-- suite-section-content --> | |
117 | + </div> <!-- result-section --> | |
118 | + </div> <!-- navigator-suite-content --> | |
119 | + </div> <!-- rounded-window --> | |
120 | + </div> <!-- suite --> | |
121 | + </div> <!-- navigator-root --> | |
122 | + <div class="wrapper"> | |
123 | + <div class="main-panel-root"> | |
124 | + <div panel-name="suite-bpms自动化测试" class="panel bpms自动化测试"> | |
125 | + <div class="suite-bpms自动化测试-class-passed"> | |
126 | + <div class="main-panel-header rounded-window-top"> | |
127 | + <img src="passed.png"/> | |
128 | + <span class="class-name">com.essa.testSuite.Test_Login</span> | |
129 | + </div> <!-- main-panel-header rounded-window-top --> | |
130 | + <div class="main-panel-content rounded-window-bottom"> | |
131 | + <div class="method"> | |
132 | + <div class="method-content"> | |
133 | + <a name="login(admin, essa123)"> | |
134 | + </a> <!-- login(admin, essa123) --> | |
135 | + <span class="method-name">login</span> | |
136 | + <span class="parameters">(admin, essa123)</span> | |
137 | + </div> <!-- method-content --> | |
138 | + </div> <!-- method --> | |
139 | + <div class="method"> | |
140 | + <div class="method-content"> | |
141 | + <a name="login(linrong, essa123)"> | |
142 | + </a> <!-- login(linrong, essa123) --> | |
143 | + <span class="method-name">login</span> | |
144 | + <span class="parameters">(linrong, essa123)</span> | |
145 | + </div> <!-- method-content --> | |
146 | + </div> <!-- method --> | |
147 | + </div> <!-- main-panel-content rounded-window-bottom --> | |
148 | + </div> <!-- suite-bpms自动化测试-class-passed --> | |
149 | + </div> <!-- panel bpms自动化测试 --> | |
150 | + <div panel-name="test-xml-bpms自动化测试" class="panel"> | |
151 | + <div class="main-panel-header rounded-window-top"> | |
152 | + <span class="header-content">E:\work\essa\suites\testng.xml</span> | |
153 | + </div> <!-- main-panel-header rounded-window-top --> | |
154 | + <div class="main-panel-content rounded-window-bottom"> | |
155 | + <pre> | |
156 | +<?xml version="1.0" encoding="UTF-8"?> | |
157 | +<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> | |
158 | +<suite guice-stage="DEVELOPMENT" verbose="0" name="bpms自动化测试"> | |
159 | + <listeners> | |
160 | + <listener class-name="com.essa.framework.ListenerSuite"/> | |
161 | + </listeners> | |
162 | + <test thread-count="5" verbose="0" name="login"> | |
163 | + <classes> | |
164 | + <class name="com.essa.testSuite.Test_Login"/> | |
165 | + </classes> | |
166 | + </test> <!-- login --> | |
167 | +</suite> <!-- bpms自动化测试 --> | |
168 | + </pre> | |
169 | + </div> <!-- main-panel-content rounded-window-bottom --> | |
170 | + </div> <!-- panel --> | |
171 | + <div panel-name="testlist-bpms自动化测试" class="panel"> | |
172 | + <div class="main-panel-header rounded-window-top"> | |
173 | + <span class="header-content">Tests for bpms自动化测试</span> | |
174 | + </div> <!-- main-panel-header rounded-window-top --> | |
175 | + <div class="main-panel-content rounded-window-bottom"> | |
176 | + <ul> | |
177 | + <li> | |
178 | + <span class="test-name">login (1 class)</span> | |
179 | + </li> | |
180 | + </ul> | |
181 | + </div> <!-- main-panel-content rounded-window-bottom --> | |
182 | + </div> <!-- panel --> | |
183 | + <div panel-name="group-bpms自动化测试" class="panel"> | |
184 | + <div class="main-panel-header rounded-window-top"> | |
185 | + <span class="header-content">Groups for bpms自动化测试</span> | |
186 | + </div> <!-- main-panel-header rounded-window-top --> | |
187 | + <div class="main-panel-content rounded-window-bottom"> | |
188 | + </div> <!-- main-panel-content rounded-window-bottom --> | |
189 | + </div> <!-- panel --> | |
190 | + <div panel-name="times-bpms自动化测试" class="panel"> | |
191 | + <div class="main-panel-header rounded-window-top"> | |
192 | + <span class="header-content">Times for bpms自动化测试</span> | |
193 | + </div> <!-- main-panel-header rounded-window-top --> | |
194 | + <div class="main-panel-content rounded-window-bottom"> | |
195 | + <div class="times-div"> | |
196 | + <script type="text/javascript"> | |
197 | +suiteTableInitFunctions.push('tableData_bpms自动化测试'); | |
198 | +function tableData_bpms自动化测试() { | |
199 | +var data = new google.visualization.DataTable(); | |
200 | +data.addColumn('number', 'Number'); | |
201 | +data.addColumn('string', 'Method'); | |
202 | +data.addColumn('string', 'Class'); | |
203 | +data.addColumn('number', 'Time (ms)'); | |
204 | +data.addRows(2); | |
205 | +data.setCell(0, 0, 0) | |
206 | +data.setCell(0, 1, 'login') | |
207 | +data.setCell(0, 2, 'com.essa.testSuite.Test_Login') | |
208 | +data.setCell(0, 3, 10933); | |
209 | +data.setCell(1, 0, 1) | |
210 | +data.setCell(1, 1, 'login') | |
211 | +data.setCell(1, 2, 'com.essa.testSuite.Test_Login') | |
212 | +data.setCell(1, 3, 8676); | |
213 | +window.suiteTableData['bpms自动化测试']= { tableData: data, tableDiv: 'times-div-bpms自动化测试'} | |
214 | +return data; | |
215 | +} | |
216 | + </script> | |
217 | + <span class="suite-total-time">Total running time: 19 seconds</span> | |
218 | + <div id="times-div-bpms自动化测试"> | |
219 | + </div> <!-- times-div-bpms自动化测试 --> | |
220 | + </div> <!-- times-div --> | |
221 | + </div> <!-- main-panel-content rounded-window-bottom --> | |
222 | + </div> <!-- panel --> | |
223 | + <div panel-name="reporter-bpms自动化测试" class="panel"> | |
224 | + <div class="main-panel-header rounded-window-top"> | |
225 | + <span class="header-content">Reporter output for bpms自动化测试</span> | |
226 | + </div> <!-- main-panel-header rounded-window-top --> | |
227 | + <div class="main-panel-content rounded-window-bottom"> | |
228 | + </div> <!-- main-panel-content rounded-window-bottom --> | |
229 | + </div> <!-- panel --> | |
230 | + <div panel-name="ignored-methods-bpms自动化测试" class="panel"> | |
231 | + <div class="main-panel-header rounded-window-top"> | |
232 | + <span class="header-content">0 ignored methods</span> | |
233 | + </div> <!-- main-panel-header rounded-window-top --> | |
234 | + <div class="main-panel-content rounded-window-bottom"> | |
235 | + </div> <!-- main-panel-content rounded-window-bottom --> | |
236 | + </div> <!-- panel --> | |
237 | + <div panel-name="chronological-bpms自动化测试" class="panel"> | |
238 | + <div class="main-panel-header rounded-window-top"> | |
239 | + <span class="header-content">Methods in chronological order</span> | |
240 | + </div> <!-- main-panel-header rounded-window-top --> | |
241 | + <div class="main-panel-content rounded-window-bottom"> | |
242 | + <div class="chronological-class"> | |
243 | + <div class="chronological-class-name">com.essa.testSuite.Test_Login</div> <!-- chronological-class-name --> | |
244 | + <div class="configuration-class before"> | |
245 | + <span class="method-name">setUp</span> | |
246 | + <span class="method-start">0 ms</span> | |
247 | + </div> <!-- configuration-class before --> | |
248 | + <div class="test-method"> | |
249 | + <span class="method-name">login(admin, essa123)</span> | |
250 | + <span class="method-start">16192 ms</span> | |
251 | + </div> <!-- test-method --> | |
252 | + <div class="test-method"> | |
253 | + <span class="method-name">login(linrong, essa123)</span> | |
254 | + <span class="method-start">24877 ms</span> | |
255 | + </div> <!-- test-method --> | |
256 | + <div class="configuration-class after"> | |
257 | + <span class="method-name">tearDown</span> | |
258 | + <span class="method-start">35848 ms</span> | |
259 | + </div> <!-- configuration-class after --> | |
260 | + </div> <!-- main-panel-content rounded-window-bottom --> | |
261 | + </div> <!-- panel --> | |
262 | + </div> <!-- main-panel-root --> | |
263 | + </div> <!-- wrapper --> | |
264 | + </body> | |
265 | +</html> | ... | ... |
1 | +++ a/target/surefire-reports/jquery-1.7.1.min.js | |
... | ... | @@ -0,0 +1,4 @@ |
1 | +/*! jQuery v1.7.1 jquery.com | jquery.org/license */ | |
2 | +(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cv(a){if(!ck[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){cl||(cl=c.createElement("iframe"),cl.frameBorder=cl.width=cl.height=0),b.appendChild(cl);if(!cm||!cl.createElement)cm=(cl.contentWindow||cl.contentDocument).document,cm.write((c.compatMode==="CSS1Compat"?"<!doctype html>":"")+"<html><body>"),cm.close();d=cm.createElement(a),cm.body.appendChild(d),e=f.css(d,"display"),b.removeChild(cl)}ck[a]=e}return ck[a]}function cu(a,b){var c={};f.each(cq.concat.apply([],cq.slice(0,b)),function(){c[this]=a});return c}function ct(){cr=b}function cs(){setTimeout(ct,0);return cr=f.now()}function cj(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ci(){try{return new a.XMLHttpRequest}catch(b){}}function cc(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h=="string"&&(e[h.toLowerCase()]=a.converters[h]);l=k,k=d[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=e[m]||e["* "+k];if(!n){p=b;for(o in e){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=e[j[1]+" "+k];if(p){o=e[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&f.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function cb(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function ca(a,b,c,d){if(f.isArray(b))f.each(b,function(b,e){c||bE.test(a)?d(a,e):ca(a+"["+(typeof e=="object"||f.isArray(e)?b:"")+"]",e,c,d)});else if(!c&&b!=null&&typeof b=="object")for(var e in b)ca(a+"["+e+"]",b[e],c,d);else d(a,b)}function b_(a,c){var d,e,g=f.ajaxSettings.flatOptions||{};for(d in c)c[d]!==b&&((g[d]?a:e||(e={}))[d]=c[d]);e&&f.extend(!0,a,e)}function b$(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bT,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l=="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=b$(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=b$(a,c,d,e,"*",g));return l}function bZ(a){return function(b,c){typeof b!="string"&&(c=b,b="*");if(f.isFunction(c)){var d=b.toLowerCase().split(bP),e=0,g=d.length,h,i,j;for(;e<g;e++)h=d[e],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function bC(a,b,c){var d=b==="width"?a.offsetWidth:a.offsetHeight,e=b==="width"?bx:by,g=0,h=e.length;if(d>0){if(c!=="border")for(;g<h;g++)c||(d-=parseFloat(f.css(a,"padding"+e[g]))||0),c==="margin"?d+=parseFloat(f.css(a,c+e[g]))||0:d-=parseFloat(f.css(a,"border"+e[g]+"Width"))||0;return d+"px"}d=bz(a,b,b);if(d<0||d==null)d=a.style[b]||0;d=parseFloat(d)||0;if(c)for(;g<h;g++)d+=parseFloat(f.css(a,"padding"+e[g]))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+e[g]+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+e[g]))||0);return d+"px"}function bp(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(bf,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function bo(a){var b=c.createElement("div");bh.appendChild(b),b.innerHTML=a.outerHTML;return b.firstChild}function bn(a){var b=(a.nodeName||"").toLowerCase();b==="input"?bm(a):b!=="script"&&typeof a.getElementsByTagName!="undefined"&&f.grep(a.getElementsByTagName("input"),bm)}function bm(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bl(a){return typeof a.getElementsByTagName!="undefined"?a.getElementsByTagName("*"):typeof a.querySelectorAll!="undefined"?a.querySelectorAll("*"):[]}function bk(a,b){var c;if(b.nodeType===1){b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase();if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(f.expando)}}function bj(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c,d,e,g=f._data(a),h=f._data(b,g),i=g.events;if(i){delete h.handle,h.events={};for(c in i)for(d=0,e=i[c].length;d<e;d++)f.event.add(b,c+(i[c][d].namespace?".":"")+i[c][d].namespace,i[c][d],i[c][d].data)}h.data&&(h.data=f.extend({},h.data))}}function bi(a,b){return f.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function U(a){var b=V.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}function T(a,b,c){b=b||0;if(f.isFunction(b))return f.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return f.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=f.grep(a,function(a){return a.nodeType===1});if(O.test(b))return f.filter(b,d,!c);b=f.filter(b,d)}return f.grep(a,function(a,d){return f.inArray(a,b)>=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?parseFloat(d):j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c<d;c++)b[a[c]]=!0;return b}var c=a.document,d=a.navigator,e=a.location,f=function(){function J(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(J,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){d=i[c],f=a[c];if(i===f)continue;l&&f&&(e.isPlainObject(f)||(g=e.isArray(f)))?(g?(g=!1,h=d&&e.isArray(d)?d:[]):h=d&&e.isPlainObject(d)?d:{},i[c]=e.extend(l,h,f)):f!==b&&(i[c]=f)}return i},e.extend({noConflict:function(b){a.$===e&&(a.$=g),b&&a.jQuery===e&&(a.jQuery=f);return e},isReady:!1,readyWait:1,holdReady:function(a){a?e.readyWait++:e.ready(!0)},ready:function(a){if(a===!0&&!--e.readyWait||a!==!0&&!e.isReady){if(!c.body)return setTimeout(e.ready,1);e.isReady=!0;if(a!==!0&&--e.readyWait>0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g<h;)if(c.apply(a[g++],d)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(;g<h;)if(c.call(a[g],g,a[g++])===!1)break;return a},trim:G?function(a){return a==null?"":G.call(a)}:function(a){return a==null?"":(a+"").replace(k,"").replace(l,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var d=e.type(a);a.length==null||d==="string"||d==="function"||d==="regexp"||e.isWindow(a)?E.call(c,a):e.merge(c,a)}return c},inArray:function(a,b,c){var d;if(b){if(H)return H.call(b,a,c);d=b.length,c=c?c<0?Math.max(0,d+c):c:0;for(;c<d;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length=="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,c,d){var f,g,h=[],i=0,j=a.length,k=a instanceof e||j!==b&&typeof j=="number"&&(j>0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i<j;i++)f=c(a[i],i,d),f!=null&&(h[h.length]=f);else for(g in a)f=c(a[g],g,d),f!=null&&(h[h.length]=f);return h.concat.apply([],h)},guid:1,proxy:function(a,c){if(typeof c=="string"){var d=a[c];c=a,a=d}if(!e.isFunction(a))return b;var f=F.call(arguments,2),g=function(){return a.apply(c,f.concat(F.call(arguments)))};g.guid=a.guid=a.guid||g.guid||e.guid++;return g},access:function(a,c,d,f,g,h){var i=a.length;if(typeof c=="object"){for(var j in c)e.access(a,j,c[j],f,g,d);return a}if(d!==b){f=!h&&f&&e.isFunction(d);for(var k=0;k<i;k++)g(a[k],c,f?d.call(a[k],k,g(a[k],c)):d,h);return a}return i?g(a[0],c):b},now:function(){return(new Date).getTime()},uaMatch:function(a){a=a.toLowerCase();var b=r.exec(a)||s.exec(a)||t.exec(a)||a.indexOf("compatible")<0&&u.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}e.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function(d,f){f&&f instanceof e&&!(f instanceof a)&&(f=a(f));return e.fn.init.call(this,d,f,b)},a.fn.init.prototype=a.fn;var b=a(c);return a},browser:{}}),e.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){I["[object "+b+"]"]=b.toLowerCase()}),z=e.uaMatch(y),z.browser&&(e.browser[z.browser]=!0,e.browser.version=z.version),e.browser.webkit&&(e.browser.safari=!0),j.test(" ")&&(k=/^[\s\xA0]+/,l=/[\s\xA0]+$/),h=e(c),c.addEventListener?B=function(){c.removeEventListener("DOMContentLoaded",B,!1),e.ready()}:c.attachEvent&&(B=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",B),e.ready())});return e}(),g={};f.Callbacks=function(a){a=a?g[a]||h(a):{};var c=[],d=[],e,i,j,k,l,m=function(b){var d,e,g,h,i;for(d=0,e=b.length;d<e;d++)g=b[d],h=f.type(g),h==="array"?m(g):h==="function"&&(!a.unique||!o.has(g))&&c.push(g)},n=function(b,f){f=f||[],e=!a.memory||[b,f],i=!0,l=j||0,j=0,k=c.length;for(;c&&l<k;l++)if(c[l].apply(b,f)===!1&&a.stopOnFalse){e=!0;break}i=!1,c&&(a.once?e===!0?o.disable():c=[]:d&&d.length&&(e=d.shift(),o.fireWith(e[0],e[1])))},o={add:function(){if(c){var a=c.length;m(arguments),i?k=c.length:e&&e!==!0&&(j=a,n(e[0],e[1]))}return this},remove:function(){if(c){var b=arguments,d=0,e=b.length;for(;d<e;d++)for(var f=0;f<c.length;f++)if(b[d]===c[f]){i&&f<=k&&(k--,f<=l&&l--),c.splice(f--,1);if(a.unique)break}}return this},has:function(a){if(c){var b=0,d=c.length;for(;b<d;b++)if(a===c[b])return!0}return!1},empty:function(){c=[];return this},disable:function(){c=d=e=b;return this},disabled:function(){return!c},lock:function(){d=b,(!e||e===!0)&&o.disable();return this},locked:function(){return!d},fireWith:function(b,c){d&&(i?a.once||d.push([b,c]):(!a.once||!e)&&n(b,c));return this},fire:function(){o.fireWith(this,arguments);return this},fired:function(){return!!e}};return o};var i=[].slice;f.extend({Deferred:function(a){var b=f.Callbacks("once memory"),c=f.Callbacks("once memory"),d=f.Callbacks("memory"),e="pending",g={resolve:b,reject:c,notify:d},h={done:b.add,fail:c.add,progress:d.add,state:function(){return e},isResolved:b.fired,isRejected:c.fired,then:function(a,b,c){i.done(a).fail(b).progress(c);return this},always:function(){i.done.apply(i,arguments).fail.apply(i,arguments);return this},pipe:function(a,b,c){return f.Deferred(function(d){f.each({done:[a,"resolve"],fail:[b,"reject"],progress:[c,"notify"]},function(a,b){var c=b[0],e=b[1],g;f.isFunction(c)?i[a](function(){g=c.apply(this,arguments),g&&f.isFunction(g.promise)?g.promise().then(d.resolve,d.reject,d.notify):d[e+"With"](this===i?d:this,[g])}):i[a](d[e])})}).promise()},promise:function(a){if(a==null)a=h;else for(var b in h)a[b]=h[b];return a}},i=h.promise({}),j;for(j in g)i[j]=g[j].fire,i[j+"With"]=g[j].fireWith;i.done(function(){e="resolved"},c.disable,d.lock).fail(function(){e="rejected"},b.disable,d.lock),a&&a.call(i,i);return i},when:function(a){function m(a){return function(b){e[a]=arguments.length>1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c<d;c++)b[c]&&b[c].promise&&f.isFunction(b[c].promise)?b[c].promise().then(l(c),j.reject,m(c)):--g;g||j.resolveWith(j,b)}else j!==a&&j.resolveWith(j,d?[a]:[]);return k}}),f.support=function(){var b,d,e,g,h,i,j,k,l,m,n,o,p,q=c.createElement("div"),r=c.documentElement;q.setAttribute("className","t"),q.innerHTML=" <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>",d=q.getElementsByTagName("*"),e=q.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=q.getElementsByTagName("input")[0],b={leadingWhitespace:q.firstChild.nodeType===3,tbody:!q.getElementsByTagName("tbody").length,htmlSerialize:!!q.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:q.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav></:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete q.test}catch(s){b.deleteExpando=!1}!q.addEventListener&&q.attachEvent&&q.fireEvent&&(q.attachEvent("onclick",function(){b.noCloneEvent=!1}),q.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),q.appendChild(i),k=c.createDocumentFragment(),k.appendChild(q.lastChild),b.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,k.removeChild(i),k.appendChild(q),q.innerHTML="",a.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",q.style.width="2px",q.appendChild(j),b.reliableMarginRight=(parseInt((a.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0);if(q.attachEvent)for(o in{submit:1,change:1,focusin:1})n="on"+o,p=n in q,p||(q.setAttribute(n,"return;"),p=typeof q[n]=="function"),b[o+"Bubbles"]=p;k.removeChild(q),k=g=h=j=q=i=null,f(function(){var a,d,e,g,h,i,j,k,m,n,o,r=c.getElementsByTagName("body")[0];!r||(j=1,k="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;",m="visibility:hidden;border:0;",n="style='"+k+"border:5px solid #000;padding:0;'",o="<div "+n+"><div></div></div>"+"<table "+n+" cellpadding='0' cellspacing='0'>"+"<tr><td></td></tr></table>",a=c.createElement("div"),a.style.cssText=m+"width:0;height:0;position:static;top:0;margin-top:"+j+"px",r.insertBefore(a,r.firstChild),q=c.createElement("div"),a.appendChild(q),q.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>",l=q.getElementsByTagName("td"),p=l[0].offsetHeight===0,l[0].style.display="",l[1].style.display="none",b.reliableHiddenOffsets=p&&l[0].offsetHeight===0,q.innerHTML="",q.style.width=q.style.paddingLeft="1px",f.boxModel=b.boxModel=q.offsetWidth===2,typeof q.style.zoom!="undefined"&&(q.style.display="inline",q.style.zoom=1,b.inlineBlockNeedsLayout=q.offsetWidth===2,q.style.display="",q.innerHTML="<div style='width:4px;'></div>",b.shrinkWrapBlocks=q.offsetWidth!==2),q.style.cssText=k+m,q.innerHTML=o,d=q.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,i={doesNotAddBorder:e.offsetTop!==5,doesAddBorderForTableAndCells:h.offsetTop===5},e.style.position="fixed",e.style.top="20px",i.fixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",i.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,i.doesNotIncludeMarginInBodyOffset=r.offsetTop!==j,r.removeChild(a),q=a=null,f.extend(b,i))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e<g;e++)delete d[b[e]];if(!(c?m:f.isEmptyObject)(d))return}}if(!c){delete j[k].data;if(!m(j[k]))return}f.support.deleteExpando||!j.setInterval?delete j[k]:j[k]=null,i&&(f.support.deleteExpando?delete a[h]:a.removeAttribute?a.removeAttribute(h):a[h]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d,e,g,h=null;if(typeof a=="undefined"){if(this.length){h=f.data(this[0]);if(this[0].nodeType===1&&!f._data(this[0],"parsedAttrs")){e=this[0].attributes;for(var i=0,j=e.length;i<j;i++)g=e[i].name,g.indexOf("data-")===0&&(g=f.camelCase(g.substring(5)),l(this[0],g,h[g]));f._data(this[0],"parsedAttrs",!0)}}return h}if(typeof a=="object")return this.each(function(){f.data(this,a)});d=a.split("."),d[1]=d[1]?"."+d[1]:"";if(c===b){h=this.triggerHandler("getData"+d[1]+"!",[d[0]]),h===b&&this.length&&(h=f.data(this[0],a),h=l(this[0],a,h));return h===b&&d[1]?this.data(d[0]):h}return this.each(function(){var b=f(this),e=[d[0],c];b.triggerHandler("setData"+d[1]+"!",e),f.data(this,a,c),b.triggerHandler("changeData"+d[1]+"!",e)})},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,b){a&&(b=(b||"fx")+"mark",f._data(a,b,(f._data(a,b)||0)+1))},_unmark:function(a,b,c){a!==!0&&(c=b,b=a,a=!1);if(b){c=c||"fx";var d=c+"mark",e=a?0:(f._data(b,d)||1)-1;e?f._data(b,d,e):(f.removeData(b,d,!0),n(b,c,"mark"))}},queue:function(a,b,c){var d;if(a){b=(b||"fx")+"queue",d=f._data(a,b),c&&(!d||f.isArray(c)?d=f._data(a,b,f.makeArray(c)):d.push(c));return d||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e={};d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),f._data(a,b+".run",e),d.call(a,function(){f.dequeue(a,b)},e)),c.length||(f.removeData(a,b+"queue "+b+".run",!0),n(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){typeof a!="string"&&(c=a,a="fx");if(c===b)return f.queue(this[0],a);return this.each(function(){var b=f.queue(this,a,c);a==="fx"&&b[0]!=="inprogress"&&f.dequeue(this,a)})},dequeue:function(a){return this.each(function(){f.dequeue(this,a)})},delay:function(a,b){a=f.fx?f.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){function m(){--h||d.resolveWith(e,[e])}typeof a!="string"&&(c=a,a=b),a=a||"fx";var d=f.Deferred(),e=this,g=e.length,h=1,i=a+"defer",j=a+"queue",k=a+"mark",l;while(g--)if(l=f.data(e[g],i,b,!0)||(f.data(e[g],j,b,!0)||f.data(e[g],k,b,!0))&&f.data(e[g],i,f.Callbacks("once memory"),!0))h++,l.add(m);m();return d.promise()}});var o=/[\n\t\r]/g,p=/\s+/,q=/\r/g,r=/^(?:button|input)$/i,s=/^(?:button|input|object|select|textarea)$/i,t=/^a(?:rea)?$/i,u=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,v=f.support.getSetAttribute,w,x,y;f.fn.extend({attr:function(a,b){return f.access(this,a,b,!0,f.attr)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,a,b,!0,f.prop)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,g,h,i;if(f.isFunction(a))return this.each(function(b){f(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(p);for(c=0,d=this.length;c<d;c++){e=this[c];if(e.nodeType===1)if(!e.className&&b.length===1)e.className=a;else{g=" "+e.className+" ";for(h=0,i=b.length;h<i;h++)~g.indexOf(" "+b[h]+" ")||(g+=b[h]+" ");e.className=f.trim(g)}}}return this},removeClass:function(a){var c,d,e,g,h,i,j;if(f.isFunction(a))return this.each(function(b){f(this).removeClass(a.call(this,b,this.className))});if(a&&typeof a=="string"||a===b){c=(a||"").split(p);for(d=0,e=this.length;d<e;d++){g=this[d];if(g.nodeType===1&&g.className)if(a){h=(" "+g.className+" ").replace(o," ");for(i=0,j=c.length;i<j;i++)h=h.replace(" "+c[i]+" "," ");g.className=f.trim(h)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";if(f.isFunction(a))return this.each(function(c){f(this).toggleClass(a.call(this,c,this.className,b),b)});return this.each(function(){if(c==="string"){var e,g=0,h=f(this),i=b,j=a.split(p);while(e=j[g++])i=d?i:!h.hasClass(e),h[i?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&f._data(this,"__className__",this.className),this.className=this.className||a===!1?"":f._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ",c=0,d=this.length;for(;c<d;c++)if(this[c].nodeType===1&&(" "+this[c].className+" ").replace(o," ").indexOf(b)>-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.nodeName.toLowerCase()]||f.valHooks[g.type];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c<d;c++){e=i[c];if(e.selected&&(f.support.optDisabled?!e.disabled:e.getAttribute("disabled")===null)&&(!e.parentNode.disabled||!f.nodeName(e.parentNode,"optgroup"))){b=f(e).val();if(j)return b;h.push(b)}}if(j&&!h.length&&i.length)return f(i[g]).val();return h},set:function(a,b){var c=f.makeArray(b);f(a).find("option").each(function(){this.selected=f.inArray(f(this).val(),c)>=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;h<g;h++)e=d[h],e&&(c=f.propFix[e]||e,f.attr(a,e,""),a.removeAttribute(v?e:c),u.test(e)&&c in a&&(a[c]=!1))}},attrHooks:{type:{set:function(a,b){if(r.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},value:{get:function(a,b){if(w&&f.nodeName(a,"button"))return w.get(a,b);return b in a?a.value:null},set:function(a,b,c){if(w&&f.nodeName(a,"button"))return w.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e,g,h,i=a.nodeType;if(!!a&&i!==3&&i!==8&&i!==2){h=i!==1||!f.isXMLDoc(a),h&&(c=f.propFix[c]||c,g=f.propHooks[c]);return d!==b?g&&"set"in g&&(e=g.set(a,d,c))!==b?e:a[c]=d:g&&"get"in g&&(e=g.get(a,c))!==null?e:a[c]}},propHooks:{tabIndex:{get:function(a){var c=a.getAttributeNode("tabindex");return c&&c.specified?parseInt(c.value,10):s.test(a.nodeName)||t.test(a.nodeName)&&a.href?0:b}}}}),f.attrHooks.tabindex=f.propHooks.tabIndex,x={get:function(a,c){var d,e=f.prop(a,c);return e===!0||typeof e!="boolean"&&(d=a.getAttributeNode(c))&&d.nodeValue!==!1?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase()));return c}},v||(y={name:!0,id:!0},w=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&(y[c]?d.nodeValue!=="":d.specified)?d.nodeValue:b},set:function(a,b,d){var e=a.getAttributeNode(d);e||(e=c.createAttribute(d),a.setAttributeNode(e));return e.nodeValue=b+""}},f.attrHooks.tabindex.set=w.set,f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})}),f.attrHooks.contenteditable={get:w.get,set:function(a,b,c){b===""&&(b="false"),w.set(a,b,c)}}),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex);return null}})),f.support.enctype||(f.propFix.enctype="encoding"),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/\bhover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function(a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")}; | |
3 | +f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k<c.length;k++){l=A.exec(c[k])||[],m=l[1],n=(l[2]||"").split(".").sort(),s=f.event.special[m]||{},m=(g?s.delegateType:s.bindType)||m,s=f.event.special[m]||{},o=f.extend({type:m,origType:l[1],data:e,handler:d,guid:d.guid,selector:g,quick:G(g),namespace:n.join(".")},p),r=j[m];if(!r){r=j[m]=[],r.delegateCount=0;if(!s.setup||s.setup.call(a,e,n,i)===!1)a.addEventListener?a.addEventListener(m,i,!1):a.attachEvent&&a.attachEvent("on"+m,i)}s.add&&(s.add.call(a,o),o.handler.guid||(o.handler.guid=d.guid)),g?r.splice(r.delegateCount++,0,o):r.push(o),f.event.global[m]=!0}a=null}},global:{},remove:function(a,b,c,d,e){var g=f.hasData(a)&&f._data(a),h,i,j,k,l,m,n,o,p,q,r,s;if(!!g&&!!(o=g.events)){b=f.trim(I(b||"")).split(" ");for(h=0;h<b.length;h++){i=A.exec(b[h])||[],j=k=i[1],l=i[2];if(!j){for(j in o)f.event.remove(a,j+b[h],c,d,!0);continue}p=f.event.special[j]||{},j=(d?p.delegateType:p.bindType)||j,r=o[j]||[],m=r.length,l=l?new RegExp("(^|\\.)"+l.split(".").sort().join("\\.(?:.*\\.)?")+"(\\.|$)"):null;for(n=0;n<r.length;n++)s=r[n],(e||k===s.origType)&&(!c||c.guid===s.guid)&&(!l||l.test(s.namespace))&&(!d||d===s.selector||d==="**"&&s.selector)&&(r.splice(n--,1),s.selector&&r.delegateCount--,p.remove&&p.remove.call(a,s));r.length===0&&m!==r.length&&((!p.teardown||p.teardown.call(a,l)===!1)&&f.removeEvent(a,j,g.handle),delete o[j])}f.isEmptyObject(o)&&(q=g.handle,q&&(q.elem=null),f.removeData(a,["events","handle"],!0))}},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,e,g){if(!e||e.nodeType!==3&&e.nodeType!==8){var h=c.type||c,i=[],j,k,l,m,n,o,p,q,r,s;if(E.test(h+f.event.triggered))return;h.indexOf("!")>=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;l<r.length&&!c.isPropagationStopped();l++)m=r[l][0],c.type=r[l][1],q=(f._data(m,"events")||{})[c.type]&&f._data(m,"handle"),q&&q.apply(m,d),q=o&&m[o],q&&f.acceptData(m)&&q.apply(m,d)===!1&&c.preventDefault();c.type=h,!g&&!c.isDefaultPrevented()&&(!p._default||p._default.apply(e.ownerDocument,d)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)&&o&&e[h]&&(h!=="focus"&&h!=="blur"||c.target.offsetWidth!==0)&&!f.isWindow(e)&&(n=e[o],n&&(e[o]=null),f.event.triggered=h,e[h](),f.event.triggered=b,n&&(e[o]=n));return c.result}},dispatch:function(c){c=f.event.fix(c||a.event);var d=(f._data(this,"events")||{})[c.type]||[],e=d.delegateCount,g=[].slice.call(arguments,0),h=!c.exclusive&&!c.namespace,i=[],j,k,l,m,n,o,p,q,r,s,t;g[0]=c,c.delegateTarget=this;if(e&&!c.target.disabled&&(!c.button||c.type!=="click")){m=f(this),m.context=this.ownerDocument||this;for(l=c.target;l!=this;l=l.parentNode||this){o={},q=[],m[0]=l;for(j=0;j<e;j++)r=d[j],s=r.selector,o[s]===b&&(o[s]=r.quick?H(l,r.quick):m.is(s)),o[s]&&q.push(r);q.length&&i.push({elem:l,matches:q})}}d.length>e&&i.push({elem:this,matches:d.slice(e)});for(j=0;j<i.length&&!c.isPropagationStopped();j++){p=i[j],c.currentTarget=p.elem;for(k=0;k<p.matches.length&&!c.isImmediatePropagationStopped();k++){r=p.matches[k];if(h||!c.namespace&&!r.namespace||c.namespace_re&&c.namespace_re.test(r.namespace))c.data=r.data,c.handleObj=r,n=((f.event.special[r.origType]||{}).handle||r.handler).apply(p.elem,g),n!==b&&(c.result=n,n===!1&&(c.preventDefault(),c.stopPropagation()))}}return c.result},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){a.which==null&&(a.which=b.charCode!=null?b.charCode:b.keyCode);return a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,d){var e,f,g,h=d.button,i=d.fromElement;a.pageX==null&&d.clientX!=null&&(e=a.target.ownerDocument||c,f=e.documentElement,g=e.body,a.pageX=d.clientX+(f&&f.scrollLeft||g&&g.scrollLeft||0)-(f&&f.clientLeft||g&&g.clientLeft||0),a.pageY=d.clientY+(f&&f.scrollTop||g&&g.scrollTop||0)-(f&&f.clientTop||g&&g.clientTop||0)),!a.relatedTarget&&i&&(a.relatedTarget=i===a.target?d.toElement:i),!a.which&&h!==b&&(a.which=h&1?1:h&2?3:h&4?2:0);return a}},fix:function(a){if(a[f.expando])return a;var d,e,g=a,h=f.event.fixHooks[a.type]||{},i=h.props?this.props.concat(h.props):this.props;a=f.Event(g);for(d=i.length;d;)e=i[--d],a[e]=g[e];a.target||(a.target=g.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),a.metaKey===b&&(a.metaKey=a.ctrlKey);return h.filter?h.filter(a,g):a},special:{ready:{setup:f.bindReady},load:{noBubble:!0},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(a,b,c){f.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}},simulate:function(a,b,c,d){var e=f.extend(new f.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?f.event.trigger(e,null,b):f.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},f.event.handle=f.event.dispatch,f.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},f.Event=function(a,b){if(!(this instanceof f.Event))return new f.Event(a,b);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?K:J):this.type=a,b&&f.extend(this,b),this.timeStamp=a&&a.timeStamp||f.now(),this[f.expando]=!0},f.Event.prototype={preventDefault:function(){this.isDefaultPrevented=K;var a=this.originalEvent;!a||(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=K;var a=this.originalEvent;!a||(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=K,this.stopPropagation()},isDefaultPrevented:J,isPropagationStopped:J,isImmediatePropagationStopped:J},f.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){f.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c=this,d=a.relatedTarget,e=a.handleObj,g=e.selector,h;if(!d||d!==c&&!f.contains(c,d))a.type=e.origType,h=e.handler.apply(this,arguments),a.type=b;return h}}}),f.support.submitBubbles||(f.event.special.submit={setup:function(){if(f.nodeName(this,"form"))return!1;f.event.add(this,"click._submit keypress._submit",function(a){var c=a.target,d=f.nodeName(c,"input")||f.nodeName(c,"button")?c.form:b;d&&!d._submit_attached&&(f.event.add(d,"submit._submit",function(a){this.parentNode&&!a.isTrigger&&f.event.simulate("submit",this.parentNode,a,!0)}),d._submit_attached=!0)})},teardown:function(){if(f.nodeName(this,"form"))return!1;f.event.remove(this,"._submit")}}),f.support.changeBubbles||(f.event.special.change={setup:function(){if(z.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio")f.event.add(this,"propertychange._change",function(a){a.originalEvent.propertyName==="checked"&&(this._just_changed=!0)}),f.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1,f.event.simulate("change",this,a,!0))});return!1}f.event.add(this,"beforeactivate._change",function(a){var b=a.target;z.test(b.nodeName)&&!b._change_attached&&(f.event.add(b,"change._change",function(a){this.parentNode&&!a.isSimulated&&!a.isTrigger&&f.event.simulate("change",this.parentNode,a,!0)}),b._change_attached=!0)})},handle:function(a){var b=a.target;if(this!==b||a.isSimulated||a.isTrigger||b.type!=="radio"&&b.type!=="checkbox")return a.handleObj.handler.apply(this,arguments)},teardown:function(){f.event.remove(this,"._change");return z.test(this.nodeName)}}),f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){var d=0,e=function(a){f.event.simulate(b,a.target,f.event.fix(a),!0)};f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.fn.extend({on:function(a,c,d,e,g){var h,i;if(typeof a=="object"){typeof c!="string"&&(d=c,c=b);for(i in a)this.on(i,c,d,a[i],g);return this}d==null&&e==null?(e=c,d=c=b):e==null&&(typeof c=="string"?(e=d,d=b):(e=d,d=c,c=b));if(e===!1)e=J;else if(!e)return this;g===1&&(h=e,e=function(a){f().off(a);return h.apply(this,arguments)},e.guid=h.guid||(h.guid=f.guid++));return this.each(function(){f.event.add(this,a,e,d,c)})},one:function(a,b,c,d){return this.on.call(this,a,b,c,d,1)},off:function(a,c,d){if(a&&a.preventDefault&&a.handleObj){var e=a.handleObj;f(a.delegateTarget).off(e.namespace?e.type+"."+e.namespace:e.type,e.selector,e.handler);return this}if(typeof a=="object"){for(var g in a)this.off(g,c,a[g]);return this}if(c===!1||typeof c=="function")d=c,c=b;d===!1&&(d=J);return this.each(function(){f.event.remove(this,a,d,c)})},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},live:function(a,b,c){f(this.context).on(a,this.selector,b,c);return this},die:function(a,b){f(this.context).off(a,this.selector||"**",b);return this},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return arguments.length==1?this.off(a,"**"):this.off(b,a,c)},trigger:function(a,b){return this.each(function(){f.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return f.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||f.guid++,d=0,e=function(c){var e=(f._data(this,"lastToggle"+a.guid)||0)%d;f._data(this,"lastToggle"+a.guid,e+1),c.preventDefault();return b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),f.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){f.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h<i;h++){var j=e[h];if(j){var k=!1;j=j[a];while(j){if(j[d]===c){k=e[j.sizset];break}if(j.nodeType===1){g||(j[d]=c,j.sizset=h);if(typeof b!="string"){if(j===b){k=!0;break}}else if(m.filter(b,[j]).length>0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h<i;h++){var j=e[h];if(j){var k=!1;j=j[a];while(j){if(j[d]===c){k=e[j.sizset];break}j.nodeType===1&&!g&&(j[d]=c,j.sizset=h);if(j.nodeName.toLowerCase()===b){k=j;break}j=j[a]}e[h]=k}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},m.matches=function(a,b){return m(a,null,null,b)},m.matchesSelector=function(a,b){return m(b,null,null,[a]).length>0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e<f;e++){h=o.order[e];if(g=o.leftMatch[h].exec(a)){i=g[1],g.splice(1,1);if(i.substr(i.length-1)!=="\\"){g[1]=(g[1]||"").replace(j,""),d=o.find[h](g,b,c);if(d!=null){a=a.replace(o.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},m.filter=function(a,c,d,e){var f,g,h,i,j,k,l,n,p,q=a,r=[],s=c,t=c&&c[0]&&m.isXML(c[0]);while(a&&c.length){for(h in o.filter)if((f=o.leftMatch[h].exec(a))!=null&&f[2]){k=o.filter[h],l=f[1],g=!1,f.splice(1,1);if(l.substr(l.length-1)==="\\")continue;s===r&&(r=[]);if(o.preFilter[h]){f=o.preFilter[h](f,s,d,r,e,t);if(!f)g=i=!0;else if(f===!0)continue}if(f)for(n=0;(j=s[n])!=null;n++)j&&(i=k(j,f,n,s),p=e^i,d&&i!=null?p?g=!0:s[n]=!1:p&&(r.push(j),g=!0));if(i!==b){d||(s=r),a=a.replace(o.match[h],"");if(!g)return[];break}}if(a===q)if(g==null)m.error(a);else break;q=a}return s},m.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)};var n=m.getText=function(a){var b,c,d=a.nodeType,e="";if(d){if(d===1||d===9){if(typeof a.textContent=="string")return a.textContent;if(typeof a.innerText=="string")return a.innerText.replace(k,"");for(a=a.firstChild;a;a=a.nextSibling)e+=n(a)}else if(d===3||d===4)return a.nodeValue}else for(b=0;c=a[b];b++)c.nodeType!==8&&(e+=n(c));return e},o=m.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b=="string",d=c&&!l.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1);a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&m.filter(b,a,!0)},">":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&m.filter(b,a,!0)}},"":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("parentNode",b,f,a,d,c)},"~":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("previousSibling",b,f,a,d,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(j,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h<i;h++)if(g[h]===a)return!1;return!0}m.error(e)},CHILD:function(a,b){var c,e,f,g,h,i,j,k=b[1],l=a;switch(k){case"only":case"first":while(l=l.previousSibling)if(l.nodeType===1)return!1;if(k==="first")return!0;l=a;case"last":while(l=l.nextSibling)if(l.nodeType===1)return!1;return!0;case"nth":c=b[2],e=b[3];if(c===1&&e===0)return!0;f=b[0],g=a.parentNode;if(g&&(g[d]!==f||!a.nodeIndex)){i=0;for(l=g.firstChild;l;l=l.nextSibling)l.nodeType===1&&(l.nodeIndex=++i);g[d]=f}j=a.nodeIndex-e;return c===0?j===0:j%c===0&&j/c>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c<e;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var u,v;c.documentElement.compareDocumentPosition?u=function(a,b){if(a===b){h=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(u=function(a,b){if(a===b){h=!0;return 0}if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],f=[],g=a.parentNode,i=b.parentNode,j=g;if(g===i)return v(a,b);if(!g)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return v(e[k],f[k]);return k===c?v(a,f[k],-1):v(e[k],b,1)},v=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="<div class='test e'></div><div class='test'></div>";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h<i;h++)m(a,g[h],e,c);return m.filter(f,e)};m.attr=f.attr,m.selectors.attrMap={},f.find=m,f.expr=m.selectors,f.expr[":"]=f.expr.filters,f.unique=m.uniqueSort,f.text=m.getText,f.isXMLDoc=m.isXML,f.contains=m.contains}();var L=/Until$/,M=/^(?:parents|prevUntil|prevAll)/,N=/,/,O=/^.[^:#\[\.,]*$/,P=Array.prototype.slice,Q=f.expr.match.POS,R={children:!0,contents:!0,next:!0,prev:!0};f.fn.extend({find:function(a){var b=this,c,d;if(typeof a!="string")return f(a).filter(function(){for(c=0,d=b.length;c<d;c++)if(f.contains(b[c],this))return!0});var e=this.pushStack("","find",a),g,h,i;for(c=0,d=this.length;c<d;c++){g=e.length,f.find(a,this[c],e);if(c>0)for(h=g;h<e.length;h++)for(i=0;i<g;i++)if(e[i]===e[h]){e.splice(h--,1);break}}return e},has:function(a){var b=f(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++)if(f.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(T(this,a,!1),"not",a)},filter:function(a){return this.pushStack(T(this,a,!0),"filter",a)},is:function(a){return!!a&&(typeof a=="string"?Q.test(a)?f(a,this.context).index(this[0])>=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d<a.length;d++)f(g).is(a[d])&&c.push({selector:a[d],elem:g,level:h});g=g.parentNode,h++}return c}var i=Q.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d<e;d++){g=this[d];while(g){if(i?i.index(g)>-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/<tbody/i,_=/<|&#?\w+;/,ba=/<(?:script|style)/i,bb=/<(?:script|object|embed|option|style)/i,bc=new RegExp("<(?:"+V+")","i"),bd=/checked\s*(?:[^=]|=\s*.checked.)/i,be=/\/(java|ecma)script/i,bf=/^\s*<!(?:\[CDATA\[|\-\-)/,bg={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div<div>","</div>"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function() | |
4 | +{for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1></$2>");try{for(var c=0,d=this.length;c<d;c++)this[c].nodeType===1&&(f.cleanData(this[c].getElementsByTagName("*")),this[c].innerHTML=a)}catch(e){this.empty().append(a)}}else f.isFunction(a)?this.each(function(b){var c=f(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(f.isFunction(a))return this.each(function(b){var c=f(this),d=c.html();c.replaceWith(a.call(this,b,d))});typeof a!="string"&&(a=f(a).detach());return this.each(function(){var b=this.nextSibling,c=this.parentNode;f(this).remove(),b?f(b).before(a):f(c).append(a)})}return this.length?this.pushStack(f(f.isFunction(a)?a():a),"replaceWith",a):this},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,d){var e,g,h,i,j=a[0],k=[];if(!f.support.checkClone&&arguments.length===3&&typeof j=="string"&&bd.test(j))return this.each(function(){f(this).domManip(a,c,d,!0)});if(f.isFunction(j))return this.each(function(e){var g=f(this);a[0]=j.call(this,e,c?g.html():b),g.domManip(a,c,d)});if(this[0]){i=j&&j.parentNode,f.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?e={fragment:i}:e=f.buildFragment(a,this,k),h=e.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&f.nodeName(g,"tr");for(var l=0,m=this.length,n=m-1;l<m;l++)d.call(c?bi(this[l],g):this[l],e.cacheable||m>1&&l<n?f.clone(h,!0,!0):h)}k.length&&f.each(k,bp)}return this}}),f.buildFragment=function(a,b,d){var e,g,h,i,j=a[0];b&&b[0]&&(i=b[0].ownerDocument||b[0]),i.createDocumentFragment||(i=c),a.length===1&&typeof j=="string"&&j.length<512&&i===c&&j.charAt(0)==="<"&&!bb.test(j)&&(f.support.checkClone||!bd.test(j))&&(f.support.html5Clone||!bc.test(j))&&(g=!0,h=f.fragments[j],h&&h!==1&&(e=h)),e||(e=i.createDocumentFragment(),f.clean(a,i,e,d)),g&&(f.fragments[j]=h?e:1);return{fragment:e,cacheable:g}},f.fragments={},f.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){f.fn[a]=function(c){var d=[],e=f(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&e.length===1){e[b](this[0]);return this}for(var h=0,i=e.length;h<i;h++){var j=(h>0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||!bc.test("<"+a.nodeName)?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!_.test(k))k=b.createTextNode(k);else{k=k.replace(Y,"<$1></$2>");var l=(Z.exec(k)||["",""])[1].toLowerCase(),m=bg[l]||bg._default,n=m[0],o=b.createElement("div");b===c?bh.appendChild(o):U(b).appendChild(o),o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=$.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]==="<table>"&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&X.test(k)&&o.insertBefore(b.createTextNode(X.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i<r;i++)bn(k[i]);else bn(k);k.nodeType?h.push(k):h=f.merge(h,k)}if(d){g=function(a){return!a.type||be.test(a.type)};for(j=0;h[j];j++)if(e&&f.nodeName(h[j],"script")&&(!h[j].type||h[j].type.toLowerCase()==="text/javascript"))e.push(h[j].parentNode?h[j].parentNode.removeChild(h[j]):h[j]);else{if(h[j].nodeType===1){var s=f.grep(h[j].getElementsByTagName("script"),g);h.splice.apply(h,[j+1,0].concat(s))}d.appendChild(h[j])}}return h},cleanData:function(a){var b,c,d=f.cache,e=f.event.special,g=f.support.deleteExpando;for(var h=0,i;(i=a[h])!=null;h++){if(i.nodeName&&f.noData[i.nodeName.toLowerCase()])continue;c=i[f.expando];if(c){b=d[c];if(b&&b.events){for(var j in b.events)e[j]?f.event.remove(i,j):f.removeEvent(i,j,b.handle);b.handle&&(b.handle.elem=null)}g?delete i[f.expando]:i.removeAttribute&&i.removeAttribute(f.expando),delete d[c]}}}});var bq=/alpha\([^)]*\)/i,br=/opacity=([^)]*)/,bs=/([A-Z]|^ms)/g,bt=/^-?\d+(?:px)?$/i,bu=/^-?\d/,bv=/^([\-+])=([\-+.\de]+)/,bw={position:"absolute",visibility:"hidden",display:"block"},bx=["Left","Right"],by=["Top","Bottom"],bz,bA,bB;f.fn.css=function(a,c){if(arguments.length===2&&c===b)return this;return f.access(this,a,c,!0,function(a,c,d){return d!==b?f.style(a,c,d):f.css(a,c)})},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bz(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":f.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&"get"in k&&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d,h==="string"&&(g=bv.exec(d))&&(d=+(g[1]+1)*+g[2]+parseFloat(f.css(a,c)),h="number");if(d==null||h==="number"&&isNaN(d))return;h==="number"&&!f.cssNumber[i]&&(d+="px");if(!k||!("set"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c==="cssFloat"&&(c="float");if(g&&"get"in g&&(e=g.get(a,!0,d))!==b)return e;if(bz)return bz(a,c)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]}}),f.curCSS=f.css,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){var e;if(c){if(a.offsetWidth!==0)return bC(a,b,d);f.swap(a,bw,function(){e=bC(a,b,d)});return e}},set:function(a,b){if(!bt.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return br.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bq,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bq.test(g)?g.replace(bq,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bz(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,b){var c,d,e;b=b.replace(bs,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b)));return c}),c.documentElement.currentStyle&&(bB=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f===null&&g&&(e=g[b])&&(f=e),!bt.test(f)&&bu.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f||0,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),bz=bA||bB,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bD=/%20/g,bE=/\[\]$/,bF=/\r?\n/g,bG=/#.*$/,bH=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bI=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bJ=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bK=/^(?:GET|HEAD)$/,bL=/^\/\//,bM=/\?/,bN=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bO=/^(?:select|textarea)/i,bP=/\s+/,bQ=/([?&])_=[^&]*/,bR=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bS=f.fn.load,bT={},bU={},bV,bW,bX=["*/"]+["*"];try{bV=e.href}catch(bY){bV=c.createElement("a"),bV.href="",bV=bV.href}bW=bR.exec(bV.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bS)return bS.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("<div>").append(c.replace(bN,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bO.test(this.nodeName)||bI.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bF,"\r\n")}}):{name:b.name,value:c.replace(bF,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.on(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?b_(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b_(a,b);return a},ajaxSettings:{url:bV,isLocal:bJ.test(bW[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bX},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bZ(bT),ajaxTransport:bZ(bU),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?cb(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=cc(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bH.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bG,"").replace(bL,bW[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bP),d.crossDomain==null&&(r=bR.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bW[1]&&r[2]==bW[2]&&(r[3]||(r[1]==="http:"?80:443))==(bW[3]||(bW[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),b$(bT,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bK.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bM.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bQ,"$1_="+x);d.url=y+(y===d.url?(bM.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bX+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=b$(bU,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){if(s<2)w(-1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)ca(g,a[g],c,e);return d.join("&").replace(bD,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cd=f.now(),ce=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cd++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ce.test(b.url)||e&&ce.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ce,l),b.url===j&&(e&&(k=k.replace(ce,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cf=a.ActiveXObject?function(){for(var a in ch)ch[a](0,1)}:!1,cg=0,ch;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ci()||cj()}:ci,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cf&&delete ch[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cg,cf&&(ch||(ch={},f(a).unload(cf)),ch[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var ck={},cl,cm,cn=/^(?:toggle|show|hide)$/,co=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cp,cq=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cr;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cu("show",3),a,b,c);for(var g=0,h=this.length;g<h;g++)d=this[g],d.style&&(e=d.style.display,!f._data(d,"olddisplay")&&e==="none"&&(e=d.style.display=""),e===""&&f.css(d,"display")==="none"&&f._data(d,"olddisplay",cv(d.nodeName)));for(g=0;g<h;g++){d=this[g];if(d.style){e=d.style.display;if(e===""||e==="none")d.style.display=f._data(d,"olddisplay")||""}}return this},hide:function(a,b,c){if(a||a===0)return this.animate(cu("hide",3),a,b,c);var d,e,g=0,h=this.length;for(;g<h;g++)d=this[g],d.style&&(e=f.css(d,"display"),e!=="none"&&!f._data(d,"olddisplay")&&f._data(d,"olddisplay",e));for(g=0;g<h;g++)this[g].style&&(this[g].style.display="none");return this},_toggle:f.fn.toggle,toggle:function(a,b,c){var d=typeof a=="boolean";f.isFunction(a)&&f.isFunction(b)?this._toggle.apply(this,arguments):a==null||d?this.each(function(){var b=d?a:f(this).is(":hidden");f(this)[b?"show":"hide"]()}):this.animate(cu("toggle",3),a,b,c);return this},fadeTo:function(a,b,c,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){function g(){e.queue===!1&&f._mark(this);var b=f.extend({},e),c=this.nodeType===1,d=c&&f(this).is(":hidden"),g,h,i,j,k,l,m,n,o;b.animatedProperties={};for(i in a){g=f.camelCase(i),i!==g&&(a[g]=a[i],delete a[i]),h=a[g],f.isArray(h)?(b.animatedProperties[g]=h[1],h=a[g]=h[0]):b.animatedProperties[g]=b.specialEasing&&b.specialEasing[g]||b.easing||"swing";if(h==="hide"&&d||h==="show"&&!d)return b.complete.call(this);c&&(g==="height"||g==="width")&&(b.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY],f.css(this,"display")==="inline"&&f.css(this,"float")==="none"&&(!f.support.inlineBlockNeedsLayout||cv(this.nodeName)==="inline"?this.style.display="inline-block":this.style.zoom=1))}b.overflow!=null&&(this.style.overflow="hidden");for(i in a)j=new f.fx(this,b,i),h=a[i],cn.test(h)?(o=f._data(this,"toggle"+i)||(h==="toggle"?d?"show":"hide":0),o?(f._data(this,"toggle"+i,o==="show"?"hide":"show"),j[o]()):j[h]()):(k=co.exec(h),l=j.cur(),k?(m=parseFloat(k[2]),n=k[3]||(f.cssNumber[i]?"":"px"),n!=="px"&&(f.style(this,i,(m||1)+n),l=(m||1)/j.cur()*l,f.style(this,i,l+n)),k[1]&&(m=(k[1]==="-="?-1:1)*m+l),j.custom(l,m,n)):j.custom(l,h,""));return!0}var e=f.speed(b,c,d);if(f.isEmptyObject(a))return this.each(e.complete,[!1]);a=f.extend({},a);return e.queue===!1?this.each(g):this.queue(e.queue,g)},stop:function(a,c,d){typeof a!="string"&&(d=c,c=a,a=b),c&&a!==!1&&this.queue(a||"fx",[]);return this.each(function(){function h(a,b,c){var e=b[c];f.removeData(a,c,!0),e.stop(d)}var b,c=!1,e=f.timers,g=f._data(this);d||f._unmark(!0,this);if(a==null)for(b in g)g[b]&&g[b].stop&&b.indexOf(".run")===b.length-4&&h(this,g,b);else g[b=a+".run"]&&g[b].stop&&h(this,g,b);for(b=e.length;b--;)e[b].elem===this&&(a==null||e[b].queue===a)&&(d?e[b](!0):e[b].saveState(),c=!0,e.splice(b,1));(!d||!c)&&f.dequeue(this,a)})}}),f.each({slideDown:cu("show",1),slideUp:cu("hide",1),slideToggle:cu("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){f.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),f.extend({speed:function(a,b,c){var d=a&&typeof a=="object"?f.extend({},a):{complete:c||!c&&b||f.isFunction(a)&&a,duration:a,easing:c&&b||b&&!f.isFunction(b)&&b};d.duration=f.fx.off?0:typeof d.duration=="number"?d.duration:d.duration in f.fx.speeds?f.fx.speeds[d.duration]:f.fx.speeds._default;if(d.queue==null||d.queue===!0)d.queue="fx";d.old=d.complete,d.complete=function(a){f.isFunction(d.old)&&d.old.call(this),d.queue?f.dequeue(this,d.queue):a!==!1&&f._unmark(this)};return d},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig=b.orig||{}}}),f.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(f.fx.step[this.prop]||f.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=f.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,c,d){function h(a){return e.step(a)}var e=this,g=f.fx;this.startTime=cr||cs(),this.end=c,this.now=this.start=a,this.pos=this.state=0,this.unit=d||this.unit||(f.cssNumber[this.prop]?"":"px"),h.queue=this.options.queue,h.elem=this.elem,h.saveState=function(){e.options.hide&&f._data(e.elem,"fxshow"+e.prop)===b&&f._data(e.elem,"fxshow"+e.prop,e.start)},h()&&f.timers.push(h)&&!cp&&(cp=setInterval(g.tick,g.interval))},show:function(){var a=f._data(this.elem,"fxshow"+this.prop);this.options.orig[this.prop]=a||f.style(this.elem,this.prop),this.options.show=!0,a!==b?this.custom(this.cur(),a):this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),f(this.elem).show()},hide:function(){this.options.orig[this.prop]=f._data(this.elem,"fxshow"+this.prop)||f.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b,c,d,e=cr||cs(),g=!0,h=this.elem,i=this.options;if(a||e>=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c<b.length;c++)a=b[c],!a()&&b[c]===a&&b.splice(c--,1);b.length||f.fx.stop()},interval:13,stop:function(){clearInterval(cp),cp=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){f.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=a.now+a.unit:a.elem[a.prop]=a.now}}}),f.each(["width","height"],function(a,b){f.fx.step[b]=function(a){f.style(a.elem,b,Math.max(0,a.now)+a.unit)}}),f.expr&&f.expr.filters&&(f.expr.filters.animated=function(a){return f.grep(f.timers,function(b){return a===b.elem}).length});var cw=/^t(?:able|d|h)$/i,cx=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?f.fn.offset=function(a){var b=this[0],c;if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);try{c=b.getBoundingClientRect()}catch(d){}var e=b.ownerDocument,g=e.documentElement;if(!c||!f.contains(g,b))return c?{top:c.top,left:c.left}:{top:0,left:0};var h=e.body,i=cy(e),j=g.clientTop||h.clientTop||0,k=g.clientLeft||h.clientLeft||0,l=i.pageYOffset||f.support.boxModel&&g.scrollTop||h.scrollTop,m=i.pageXOffset||f.support.boxModel&&g.scrollLeft||h.scrollLeft,n=c.top+l-j,o=c.left+m-k;return{top:n,left:o}}:f.fn.offset=function(a){var b=this[0];if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);var c,d=b.offsetParent,e=b,g=b.ownerDocument,h=g.documentElement,i=g.body,j=g.defaultView,k=j?j.getComputedStyle(b,null):b.currentStyle,l=b.offsetTop,m=b.offsetLeft;while((b=b.parentNode)&&b!==i&&b!==h){if(f.support.fixedPosition&&k.position==="fixed")break;c=j?j.getComputedStyle(b,null):b.currentStyle,l-=b.scrollTop,m-=b.scrollLeft,b===d&&(l+=b.offsetTop,m+=b.offsetLeft,f.support.doesNotAddBorder&&(!f.support.doesAddBorderForTableAndCells||!cw.test(b.nodeName))&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),e=d,d=b.offsetParent),f.support.subtractsBorderForOverflowNotVisible&&c.overflow!=="visible"&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),k=c}if(k.position==="relative"||k.position==="static")l+=i.offsetTop,m+=i.offsetLeft;f.support.fixedPosition&&k.position==="fixed"&&(l+=Math.max(h.scrollTop,i.scrollTop),m+=Math.max(h.scrollLeft,i.scrollLeft));return{top:l,left:m}},f.offset={bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.support.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cy(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cy(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,d,"padding")):this[d]():null},f.fn["outer"+c]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,d,a?"margin":"border")):this[d]():null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c],h=e.document.body;return e.document.compatMode==="CSS1Compat"&&g||h&&h["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var i=f.css(e,d),j=parseFloat(i);return f.isNumeric(j)?j:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return f})})(window); | |
0 | 5 | \ No newline at end of file | ... | ... |
target/surefire-reports/junitreports/TEST-com.essa.testSuite.Test_Login.xml
0 → 100644
1 | +++ a/target/surefire-reports/junitreports/TEST-com.essa.testSuite.Test_Login.xml | |
... | ... | @@ -0,0 +1,6 @@ |
1 | +<?xml version="1.0" encoding="UTF-8"?> | |
2 | +<!-- Generated by org.testng.reporters.JUnitReportReporter --> | |
3 | +<testsuite skipped="0" hostname="DESKTOP-NIGE62D" name="com.essa.testSuite.Test_Login" tests="2" failures="0" timestamp="10 四月 2018 10:26:02 GMT" time="19.609" errors="0"> | |
4 | + <testcase name="login" time="8.676" classname="com.essa.testSuite.Test_Login"/> | |
5 | + <testcase name="login" time="10.933" classname="com.essa.testSuite.Test_Login"/> | |
6 | +</testsuite> <!-- com.essa.testSuite.Test_Login --> | ... | ... |
352 Bytes
1 | +++ a/target/surefire-reports/old/bpms自动化测试/classes.html | |
... | ... | @@ -0,0 +1,36 @@ |
1 | +<table border='1'> | |
2 | +<tr> | |
3 | +<th>Class name</th> | |
4 | +<th>Method name</th> | |
5 | +<th>Groups</th> | |
6 | +</tr><tr> | |
7 | +<td>com.essa.testSuite.Test_Login</td> | |
8 | +<td> </td><td> </td></tr> | |
9 | +<tr> | |
10 | +<td align='center' colspan='3'>@Test</td> | |
11 | +</tr> | |
12 | +<tr> | |
13 | +<td> </td> | |
14 | +<td>login</td> | |
15 | +<td> </td></tr> | |
16 | +<tr> | |
17 | +<td align='center' colspan='3'>@BeforeClass</td> | |
18 | +</tr> | |
19 | +<tr> | |
20 | +<td> </td> | |
21 | +<td>setUp</td> | |
22 | +<td> </td></tr> | |
23 | +<tr> | |
24 | +<td align='center' colspan='3'>@BeforeMethod</td> | |
25 | +</tr> | |
26 | +<tr> | |
27 | +<td align='center' colspan='3'>@AfterMethod</td> | |
28 | +</tr> | |
29 | +<tr> | |
30 | +<td align='center' colspan='3'>@AfterClass</td> | |
31 | +</tr> | |
32 | +<tr> | |
33 | +<td> </td> | |
34 | +<td>tearDown</td> | |
35 | +<td> </td></tr> | |
36 | +</table> | ... | ... |
1 | +++ a/target/surefire-reports/old/bpms自动化测试/index.html | |
... | ... | @@ -0,0 +1,6 @@ |
1 | +<html><head><title>Results for bpms×Ô¶¯»¯²âÊÔ</title></head> | |
2 | +<frameset cols="26%,74%"> | |
3 | +<frame src="toc.html" name="navFrame"> | |
4 | +<frame src="main.html" name="mainFrame"> | |
5 | +</frameset> | |
6 | +</html> | ... | ... |
target/surefire-reports/old/bpms自动化测试/login.properties
0 → 100644
target/surefire-reports/old/bpms自动化测试/methods-alphabetical.html
0 → 100644
1 | +++ a/target/surefire-reports/old/bpms自动化测试/methods-alphabetical.html | |
... | ... | @@ -0,0 +1,12 @@ |
1 | +<h2>Methods run, sorted chronologically</h2><h3>>> means before, << means after</h3><p/><br/><em>bpms×Ô¶¯»¯²âÊÔ</em><p/><small><i>(Hover the method name to see the test class name)</i></small><p/> | |
2 | +<table border="1"> | |
3 | +<tr><th>Time</th><th>Delta (ms)</th><th>Suite<br>configuration</th><th>Test<br>configuration</th><th>Class<br>configuration</th><th>Groups<br>configuration</th><th>Method<br>configuration</th><th>Test<br>method</th><th>Thread</th><th>Instances</th></tr> | |
4 | +<tr bgcolor="dca596"> <td>18/04/10 18:25:30</td> <td>0</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="Test_Login.login(java.lang.String, java.lang.String)[pri:0, instance:com.essa.testSuite.Test_Login@1b6a447]">login</td> | |
5 | + <td>main@21753702</td> <td></td> </tr> | |
6 | +<tr bgcolor="dca596"> <td>18/04/10 18:25:38</td> <td>8685</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="Test_Login.login(java.lang.String, java.lang.String)[pri:0, instance:com.essa.testSuite.Test_Login@1b6a447]">login</td> | |
7 | + <td>main@21753702</td> <td></td> </tr> | |
8 | +<tr bgcolor="dca596"> <td>18/04/10 18:25:13</td> <td>-16186</td> <td> </td><td> </td><td title=">>Test_Login.setUp()[pri:0, instance:com.essa.testSuite.Test_Login@1b6a447]">>>setUp</td> | |
9 | +<td> </td><td> </td><td> </td> <td>main@21753702</td> <td></td> </tr> | |
10 | +<tr bgcolor="dca596"> <td>18/04/10 18:25:49</td> <td>19656</td> <td> </td><td> </td><td title="<<Test_Login.tearDown()[pri:0, instance:com.essa.testSuite.Test_Login@1b6a447]"><<tearDown</td> | |
11 | +<td> </td><td> </td><td> </td> <td>main@21753702</td> <td></td> </tr> | |
12 | +</table> | ... | ... |
target/surefire-reports/old/bpms自动化测试/methods-not-run.html
0 → 100644
1 | +++ a/target/surefire-reports/old/bpms自动化测试/methods.html | |
... | ... | @@ -0,0 +1,12 @@ |
1 | +<h2>Methods run, sorted chronologically</h2><h3>>> means before, << means after</h3><p/><br/><em>bpms×Ô¶¯»¯²âÊÔ</em><p/><small><i>(Hover the method name to see the test class name)</i></small><p/> | |
2 | +<table border="1"> | |
3 | +<tr><th>Time</th><th>Delta (ms)</th><th>Suite<br>configuration</th><th>Test<br>configuration</th><th>Class<br>configuration</th><th>Groups<br>configuration</th><th>Method<br>configuration</th><th>Test<br>method</th><th>Thread</th><th>Instances</th></tr> | |
4 | +<tr bgcolor="dca596"> <td>18/04/10 18:25:13</td> <td>0</td> <td> </td><td> </td><td title=">>Test_Login.setUp()[pri:0, instance:com.essa.testSuite.Test_Login@1b6a447]">>>setUp</td> | |
5 | +<td> </td><td> </td><td> </td> <td>main@21753702</td> <td></td> </tr> | |
6 | +<tr bgcolor="dca596"> <td>18/04/10 18:25:30</td> <td>16186</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="Test_Login.login(java.lang.String, java.lang.String)[pri:0, instance:com.essa.testSuite.Test_Login@1b6a447]">login</td> | |
7 | + <td>main@21753702</td> <td></td> </tr> | |
8 | +<tr bgcolor="dca596"> <td>18/04/10 18:25:38</td> <td>24871</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="Test_Login.login(java.lang.String, java.lang.String)[pri:0, instance:com.essa.testSuite.Test_Login@1b6a447]">login</td> | |
9 | + <td>main@21753702</td> <td></td> </tr> | |
10 | +<tr bgcolor="dca596"> <td>18/04/10 18:25:49</td> <td>35842</td> <td> </td><td> </td><td title="<<Test_Login.tearDown()[pri:0, instance:com.essa.testSuite.Test_Login@1b6a447]"><<tearDown</td> | |
11 | +<td> </td><td> </td><td> </td> <td>main@21753702</td> <td></td> </tr> | |
12 | +</table> | ... | ... |
target/surefire-reports/old/bpms自动化测试/reporter-output.html
0 → 100644
target/surefire-reports/old/bpms自动化测试/testng.xml.html
0 → 100644
1 | +++ a/target/surefire-reports/old/bpms鑷姩鍖栨祴璇/testng.xml.html | |
... | ... | @@ -0,0 +1 @@ |
1 | +<html><head><title>testng.xml for bpms自动化测试</title></head><body><tt><?xml version="1.0" encoding="UTF-8"?> <br/><!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <br/><suite guice-stage="DEVELOPMENT" verbose="0" name="bpms自动化测试"> <br/> <listeners> <br/> <listener class-name="com.essa.framework.ListenerSuite"/> <br/> </listeners> <br/> <test thread-count="5" verbose="0" name="login"> <br/> <classes> <br/> <class name="com.essa.testSuite.Test_Login"/> <br/> </classes> <br/> </test> <!-- login --> <br/></suite> <!-- bpms自动化测试 --> <br/></tt></body></html> | |
0 | 2 | \ No newline at end of file | ... | ... |
1 | +++ a/target/surefire-reports/old/bpms自动化测试/toc.html | |
... | ... | @@ -0,0 +1,30 @@ |
1 | +<html> | |
2 | +<head> | |
3 | +<title>Results for bpms×Ô¶¯»¯²âÊÔ</title> | |
4 | +<link href="../testng.css" rel="stylesheet" type="text/css" /> | |
5 | +<link href="../my-testng.css" rel="stylesheet" type="text/css" /> | |
6 | +</head> | |
7 | +<body> | |
8 | +<h3><p align="center">Results for<br/><em>bpms×Ô¶¯»¯²âÊÔ</em></p></h3> | |
9 | +<table border='1' width='100%'> | |
10 | +<tr valign='top'> | |
11 | +<td>1 test</td> | |
12 | +<td><a target='mainFrame' href='classes.html'>1 class</a></td> | |
13 | +<td>1 method:<br/> | |
14 | + <a target='mainFrame' href='methods.html'>chronological</a><br/> | |
15 | + <a target='mainFrame' href='methods-alphabetical.html'>alphabetical</a><br/> | |
16 | + <a target='mainFrame' href='methods-not-run.html'>not run (0)</a></td> | |
17 | +</tr> | |
18 | +<tr> | |
19 | +<td><a target='mainFrame' href='groups.html'>0 group</a></td> | |
20 | +<td><a target='mainFrame' href='reporter-output.html'>reporter output</a></td> | |
21 | +<td><a target='mainFrame' href='testng.xml.html'>testng.xml</a></td> | |
22 | +</tr></table> | |
23 | +<table width='100%' class='test-passed'> | |
24 | +<tr><td> | |
25 | +<table style='width: 100%'><tr><td valign='top'>login (2/0/0)</td><td valign='top' align='right'> | |
26 | + <a href='login.html' target='mainFrame'>Results</a> | |
27 | +</td></tr></table> | |
28 | +</td></tr><p/> | |
29 | +</table> | |
30 | +</body></html> | |
0 | 31 | \ No newline at end of file | ... | ... |
target/surefire-reports/old/bpms自动化测试报告/classes.html
0 → 100644
1 | +++ a/target/surefire-reports/old/bpms自动化测试报告/classes.html | |
... | ... | @@ -0,0 +1,36 @@ |
1 | +<table border='1'> | |
2 | +<tr> | |
3 | +<th>Class name</th> | |
4 | +<th>Method name</th> | |
5 | +<th>Groups</th> | |
6 | +</tr><tr> | |
7 | +<td>com.essa.testSuite.Test_Login</td> | |
8 | +<td> </td><td> </td></tr> | |
9 | +<tr> | |
10 | +<td align='center' colspan='3'>@Test</td> | |
11 | +</tr> | |
12 | +<tr> | |
13 | +<td> </td> | |
14 | +<td>login</td> | |
15 | +<td> </td></tr> | |
16 | +<tr> | |
17 | +<td align='center' colspan='3'>@BeforeClass</td> | |
18 | +</tr> | |
19 | +<tr> | |
20 | +<td> </td> | |
21 | +<td>setUp</td> | |
22 | +<td> </td></tr> | |
23 | +<tr> | |
24 | +<td align='center' colspan='3'>@BeforeMethod</td> | |
25 | +</tr> | |
26 | +<tr> | |
27 | +<td align='center' colspan='3'>@AfterMethod</td> | |
28 | +</tr> | |
29 | +<tr> | |
30 | +<td align='center' colspan='3'>@AfterClass</td> | |
31 | +</tr> | |
32 | +<tr> | |
33 | +<td> </td> | |
34 | +<td>tearDown</td> | |
35 | +<td> </td></tr> | |
36 | +</table> | ... | ... |
target/surefire-reports/old/bpms自动化测试报告/groups.html
0 → 100644
1 | +++ a/target/surefire-reports/old/bpms自动化测试报告/index.html | |
... | ... | @@ -0,0 +1,6 @@ |
1 | +<html><head><title>Results for bpms×Ô¶¯»¯²âÊÔ±¨¸æ</title></head> | |
2 | +<frameset cols="26%,74%"> | |
3 | +<frame src="toc.html" name="navFrame"> | |
4 | +<frame src="main.html" name="mainFrame"> | |
5 | +</frameset> | |
6 | +</html> | ... | ... |
target/surefire-reports/old/bpms自动化测试报告/login.properties
0 → 100644
target/surefire-reports/old/bpms自动化测试报告/methods-alphabetical.html
0 → 100644
1 | +++ a/target/surefire-reports/old/bpms自动化测试报告/methods-alphabetical.html | |
... | ... | @@ -0,0 +1,12 @@ |
1 | +<h2>Methods run, sorted chronologically</h2><h3>>> means before, << means after</h3><p/><br/><em>bpms×Ô¶¯»¯²âÊÔ±¨¸æ</em><p/><small><i>(Hover the method name to see the test class name)</i></small><p/> | |
2 | +<table border="1"> | |
3 | +<tr><th>Time</th><th>Delta (ms)</th><th>Suite<br>configuration</th><th>Test<br>configuration</th><th>Class<br>configuration</th><th>Groups<br>configuration</th><th>Method<br>configuration</th><th>Test<br>method</th><th>Thread</th><th>Instances</th></tr> | |
4 | +<tr bgcolor="dca596"> <td>18/04/10 18:11:27</td> <td>0</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="Test_Login.login(java.lang.String, java.lang.String)[pri:0, instance:com.essa.testSuite.Test_Login@1b6a447]">login</td> | |
5 | + <td>main@21753702</td> <td></td> </tr> | |
6 | +<tr bgcolor="dca596"> <td>18/04/10 18:11:32</td> <td>5603</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="Test_Login.login(java.lang.String, java.lang.String)[pri:0, instance:com.essa.testSuite.Test_Login@1b6a447]">login</td> | |
7 | + <td>main@21753702</td> <td></td> </tr> | |
8 | +<tr bgcolor="dca596"> <td>18/04/10 18:11:16</td> <td>-10671</td> <td> </td><td> </td><td title=">>Test_Login.setUp()[pri:0, instance:com.essa.testSuite.Test_Login@1b6a447]">>>setUp</td> | |
9 | +<td> </td><td> </td><td> </td> <td>main@21753702</td> <td></td> </tr> | |
10 | +<tr bgcolor="dca596"> <td>18/04/10 18:11:37</td> <td>10917</td> <td> </td><td> </td><td title="<<Test_Login.tearDown()[pri:0, instance:com.essa.testSuite.Test_Login@1b6a447]"><<tearDown</td> | |
11 | +<td> </td><td> </td><td> </td> <td>main@21753702</td> <td></td> </tr> | |
12 | +</table> | ... | ... |
target/surefire-reports/old/bpms自动化测试报告/methods-not-run.html
0 → 100644
target/surefire-reports/old/bpms自动化测试报告/methods.html
0 → 100644
1 | +++ a/target/surefire-reports/old/bpms自动化测试报告/methods.html | |
... | ... | @@ -0,0 +1,12 @@ |
1 | +<h2>Methods run, sorted chronologically</h2><h3>>> means before, << means after</h3><p/><br/><em>bpms×Ô¶¯»¯²âÊÔ±¨¸æ</em><p/><small><i>(Hover the method name to see the test class name)</i></small><p/> | |
2 | +<table border="1"> | |
3 | +<tr><th>Time</th><th>Delta (ms)</th><th>Suite<br>configuration</th><th>Test<br>configuration</th><th>Class<br>configuration</th><th>Groups<br>configuration</th><th>Method<br>configuration</th><th>Test<br>method</th><th>Thread</th><th>Instances</th></tr> | |
4 | +<tr bgcolor="dca596"> <td>18/04/10 18:11:16</td> <td>0</td> <td> </td><td> </td><td title=">>Test_Login.setUp()[pri:0, instance:com.essa.testSuite.Test_Login@1b6a447]">>>setUp</td> | |
5 | +<td> </td><td> </td><td> </td> <td>main@21753702</td> <td></td> </tr> | |
6 | +<tr bgcolor="dca596"> <td>18/04/10 18:11:27</td> <td>10671</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="Test_Login.login(java.lang.String, java.lang.String)[pri:0, instance:com.essa.testSuite.Test_Login@1b6a447]">login</td> | |
7 | + <td>main@21753702</td> <td></td> </tr> | |
8 | +<tr bgcolor="dca596"> <td>18/04/10 18:11:32</td> <td>16274</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="Test_Login.login(java.lang.String, java.lang.String)[pri:0, instance:com.essa.testSuite.Test_Login@1b6a447]">login</td> | |
9 | + <td>main@21753702</td> <td></td> </tr> | |
10 | +<tr bgcolor="dca596"> <td>18/04/10 18:11:37</td> <td>21588</td> <td> </td><td> </td><td title="<<Test_Login.tearDown()[pri:0, instance:com.essa.testSuite.Test_Login@1b6a447]"><<tearDown</td> | |
11 | +<td> </td><td> </td><td> </td> <td>main@21753702</td> <td></td> </tr> | |
12 | +</table> | ... | ... |
target/surefire-reports/old/bpms自动化测试报告/reporter-output.html
0 → 100644
target/surefire-reports/old/bpms自动化测试报告/testng.xml.html
0 → 100644
1 | +++ a/target/surefire-reports/old/bpms鑷姩鍖栨祴璇曟姤鍛/testng.xml.html | |
... | ... | @@ -0,0 +1 @@ |
1 | +<html><head><title>testng.xml for bpms自动化测试报告</title></head><body><tt><?xml version="1.0" encoding="UTF-8"?> <br/><!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <br/><suite guice-stage="DEVELOPMENT" verbose="0" name="bpms自动化测试报告"> <br/> <listeners> <br/> <listener class-name="com.essa.framework.ListenerSuite"/> <br/> </listeners> <br/> <test thread-count="5" verbose="0" name="login"> <br/> <classes> <br/> <class name="com.essa.testSuite.Test_Login"/> <br/> </classes> <br/> </test> <!-- login --> <br/></suite> <!-- bpms自动化测试报告 --> <br/></tt></body></html> | |
0 | 2 | \ No newline at end of file | ... | ... |
1 | +++ a/target/surefire-reports/old/bpms鑷姩鍖栨祴璇曟姤鍛/toc.html | |
... | ... | @@ -0,0 +1,30 @@ |
1 | +<html> | |
2 | +<head> | |
3 | +<title>Results for bpms自动化测试报告</title> | |
4 | +<link href="../testng.css" rel="stylesheet" type="text/css" /> | |
5 | +<link href="../my-testng.css" rel="stylesheet" type="text/css" /> | |
6 | +</head> | |
7 | +<body> | |
8 | +<h3><p align="center">Results for<br/><em>bpms自动化测试报告</em></p></h3> | |
9 | +<table border='1' width='100%'> | |
10 | +<tr valign='top'> | |
11 | +<td>1 test</td> | |
12 | +<td><a target='mainFrame' href='classes.html'>1 class</a></td> | |
13 | +<td>1 method:<br/> | |
14 | + <a target='mainFrame' href='methods.html'>chronological</a><br/> | |
15 | + <a target='mainFrame' href='methods-alphabetical.html'>alphabetical</a><br/> | |
16 | + <a target='mainFrame' href='methods-not-run.html'>not run (0)</a></td> | |
17 | +</tr> | |
18 | +<tr> | |
19 | +<td><a target='mainFrame' href='groups.html'>0 group</a></td> | |
20 | +<td><a target='mainFrame' href='reporter-output.html'>reporter output</a></td> | |
21 | +<td><a target='mainFrame' href='testng.xml.html'>testng.xml</a></td> | |
22 | +</tr></table> | |
23 | +<table width='100%' class='test-passed'> | |
24 | +<tr><td> | |
25 | +<table style='width: 100%'><tr><td valign='top'>login (2/0/0)</td><td valign='top' align='right'> | |
26 | + <a href='login.html' target='mainFrame'>Results</a> | |
27 | +</td></tr></table> | |
28 | +</td></tr><p/> | |
29 | +</table> | |
30 | +</body></html> | |
0 | 31 | \ No newline at end of file | ... | ... |
1 | +++ a/target/surefire-reports/old/index.html | |
... | ... | @@ -0,0 +1,9 @@ |
1 | +<html> | |
2 | +<head><title></title><link href="./testng.css" rel="stylesheet" type="text/css" /> | |
3 | +<link href="./my-testng.css" rel="stylesheet" type="text/css" /> | |
4 | +</head><body> | |
5 | +<h2><p align='center'>Test results</p></h2> | |
6 | +<table border='1' width='100%' class='main-page'><tr><th>Suite</th><th>Passed</th><th>Failed</th><th>Skipped</th><th>testng.xml</th></tr> | |
7 | +<tr align='center' class='invocation-passed'><td><em>Total</em></td><td><em>2</em></td><td><em>0</em></td><td><em>0</em></td><td> </td></tr> | |
8 | +<tr align='center' class='invocation-passed'><td><a href='bpms自动化测试/index.html'>bpms自动化测试</a></td> | |
9 | +<td>2</td><td>0</td><td>0</td><td><a href='bpms自动化测试/testng.xml.html'>Link</a></td></tr></table></body></html> | ... | ... |
1019 Bytes
967 Bytes
1 | +++ a/target/surefire-reports/testng-failed.xml | |
... | ... | @@ -0,0 +1,18 @@ |
1 | +<?xml version="1.0" encoding="UTF-8"?> | |
2 | +<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> | |
3 | +<suite guice-stage="DEVELOPMENT" verbose="0" name="Failed suite [bpms自动化测试报告]"> | |
4 | + <listeners> | |
5 | + <listener class-name="com.essa.framework.ListenerSuite"/> | |
6 | + </listeners> | |
7 | + <test thread-count="5" verbose="0" name="login(failed)"> | |
8 | + <classes> | |
9 | + <class name="com.essa.testSuite.Test_Login"> | |
10 | + <methods> | |
11 | + <include name="setUp"/> | |
12 | + <include name="login"/> | |
13 | + <include name="tearDown"/> | |
14 | + </methods> | |
15 | + </class> <!-- com.essa.testSuite.Test_Login --> | |
16 | + </classes> | |
17 | + </test> <!-- login(failed) --> | |
18 | +</suite> <!-- Failed suite [bpms自动化测试报告] --> | ... | ... |
1 | +++ a/target/surefire-reports/testng-reports.css | |
... | ... | @@ -0,0 +1,309 @@ |
1 | +body { | |
2 | + margin: 0px 0px 5px 5px; | |
3 | +} | |
4 | + | |
5 | +ul { | |
6 | + margin: 0px; | |
7 | +} | |
8 | + | |
9 | +li { | |
10 | + list-style-type: none; | |
11 | +} | |
12 | + | |
13 | +a { | |
14 | + text-decoration: none; | |
15 | +} | |
16 | + | |
17 | +a:hover { | |
18 | + text-decoration: underline; | |
19 | +} | |
20 | + | |
21 | +.navigator-selected { | |
22 | + background: #ffa500; | |
23 | +} | |
24 | + | |
25 | +.wrapper { | |
26 | + position: absolute; | |
27 | + top: 60px; | |
28 | + bottom: 0; | |
29 | + left: 400px; | |
30 | + right: 0; | |
31 | + overflow: auto; | |
32 | +} | |
33 | + | |
34 | +.navigator-root { | |
35 | + position: absolute; | |
36 | + top: 60px; | |
37 | + bottom: 0; | |
38 | + left: 0; | |
39 | + width: 400px; | |
40 | + overflow-y: auto; | |
41 | +} | |
42 | + | |
43 | +.suite { | |
44 | + margin: 0px 10px 10px 0px; | |
45 | + background-color: #fff8dc; | |
46 | +} | |
47 | + | |
48 | +.suite-name { | |
49 | + padding-left: 10px; | |
50 | + font-size: 25px; | |
51 | + font-family: Times; | |
52 | +} | |
53 | + | |
54 | +.main-panel-header { | |
55 | + padding: 5px; | |
56 | + background-color: #9FB4D9; //afeeee; | |
57 | + font-family: monospace; | |
58 | + font-size: 18px; | |
59 | +} | |
60 | + | |
61 | +.main-panel-content { | |
62 | + padding: 5px; | |
63 | + margin-bottom: 10px; | |
64 | + background-color: #DEE8FC; //d0ffff; | |
65 | +} | |
66 | + | |
67 | +.rounded-window { | |
68 | + border-radius: 10px; | |
69 | + border-style: solid; | |
70 | + border-width: 1px; | |
71 | +} | |
72 | + | |
73 | +.rounded-window-top { | |
74 | + border-top-right-radius: 10px 10px; | |
75 | + border-top-left-radius: 10px 10px; | |
76 | + border-style: solid; | |
77 | + border-width: 1px; | |
78 | + overflow: auto; | |
79 | +} | |
80 | + | |
81 | +.light-rounded-window-top { | |
82 | + border-top-right-radius: 10px 10px; | |
83 | + border-top-left-radius: 10px 10px; | |
84 | +} | |
85 | + | |
86 | +.rounded-window-bottom { | |
87 | + border-style: solid; | |
88 | + border-width: 0px 1px 1px 1px; | |
89 | + border-bottom-right-radius: 10px 10px; | |
90 | + border-bottom-left-radius: 10px 10px; | |
91 | + overflow: auto; | |
92 | +} | |
93 | + | |
94 | +.method-name { | |
95 | + font-size: 12px; | |
96 | + font-family: monospace; | |
97 | +} | |
98 | + | |
99 | +.method-content { | |
100 | + border-style: solid; | |
101 | + border-width: 0px 0px 1px 0px; | |
102 | + margin-bottom: 10; | |
103 | + padding-bottom: 5px; | |
104 | + width: 80%; | |
105 | +} | |
106 | + | |
107 | +.parameters { | |
108 | + font-size: 14px; | |
109 | + font-family: monospace; | |
110 | +} | |
111 | + | |
112 | +.stack-trace { | |
113 | + white-space: pre; | |
114 | + font-family: monospace; | |
115 | + font-size: 12px; | |
116 | + font-weight: bold; | |
117 | + margin-top: 0px; | |
118 | + margin-left: 20px; | |
119 | +} | |
120 | + | |
121 | +.testng-xml { | |
122 | + font-family: monospace; | |
123 | +} | |
124 | + | |
125 | +.method-list-content { | |
126 | + margin-left: 10px; | |
127 | +} | |
128 | + | |
129 | +.navigator-suite-content { | |
130 | + margin-left: 10px; | |
131 | + font: 12px 'Lucida Grande'; | |
132 | +} | |
133 | + | |
134 | +.suite-section-title { | |
135 | + margin-top: 10px; | |
136 | + width: 80%; | |
137 | + border-style: solid; | |
138 | + border-width: 1px 0px 0px 0px; | |
139 | + font-family: Times; | |
140 | + font-size: 18px; | |
141 | + font-weight: bold; | |
142 | +} | |
143 | + | |
144 | +.suite-section-content { | |
145 | + list-style-image: url(bullet_point.png); | |
146 | +} | |
147 | + | |
148 | +.top-banner-root { | |
149 | + position: absolute; | |
150 | + top: 0; | |
151 | + height: 45px; | |
152 | + left: 0; | |
153 | + right: 0; | |
154 | + padding: 5px; | |
155 | + margin: 0px 0px 5px 0px; | |
156 | + background-color: #0066ff; | |
157 | + font-family: Times; | |
158 | + color: #fff; | |
159 | + text-align: center; | |
160 | +} | |
161 | + | |
162 | +.top-banner-title-font { | |
163 | + font-size: 25px; | |
164 | +} | |
165 | + | |
166 | +.test-name { | |
167 | + font-family: 'Lucida Grande'; | |
168 | + font-size: 16px; | |
169 | +} | |
170 | + | |
171 | +.suite-icon { | |
172 | + padding: 5px; | |
173 | + float: right; | |
174 | + height: 20; | |
175 | +} | |
176 | + | |
177 | +.test-group { | |
178 | + font: 20px 'Lucida Grande'; | |
179 | + margin: 5px 5px 10px 5px; | |
180 | + border-width: 0px 0px 1px 0px; | |
181 | + border-style: solid; | |
182 | + padding: 5px; | |
183 | +} | |
184 | + | |
185 | +.test-group-name { | |
186 | + font-weight: bold; | |
187 | +} | |
188 | + | |
189 | +.method-in-group { | |
190 | + font-size: 16px; | |
191 | + margin-left: 80px; | |
192 | +} | |
193 | + | |
194 | +table.google-visualization-table-table { | |
195 | + width: 100%; | |
196 | +} | |
197 | + | |
198 | +.reporter-method-name { | |
199 | + font-size: 14px; | |
200 | + font-family: monospace; | |
201 | +} | |
202 | + | |
203 | +.reporter-method-output-div { | |
204 | + padding: 5px; | |
205 | + margin: 0px 0px 5px 20px; | |
206 | + font-size: 12px; | |
207 | + font-family: monospace; | |
208 | + border-width: 0px 0px 0px 1px; | |
209 | + border-style: solid; | |
210 | +} | |
211 | + | |
212 | +.ignored-class-div { | |
213 | + font-size: 14px; | |
214 | + font-family: monospace; | |
215 | +} | |
216 | + | |
217 | +.ignored-methods-div { | |
218 | + padding: 5px; | |
219 | + margin: 0px 0px 5px 20px; | |
220 | + font-size: 12px; | |
221 | + font-family: monospace; | |
222 | + border-width: 0px 0px 0px 1px; | |
223 | + border-style: solid; | |
224 | +} | |
225 | + | |
226 | +.border-failed { | |
227 | + border-top-left-radius: 10px 10px; | |
228 | + border-bottom-left-radius: 10px 10px; | |
229 | + border-style: solid; | |
230 | + border-width: 0px 0px 0px 10px; | |
231 | + border-color: #f00; | |
232 | +} | |
233 | + | |
234 | +.border-skipped { | |
235 | + border-top-left-radius: 10px 10px; | |
236 | + border-bottom-left-radius: 10px 10px; | |
237 | + border-style: solid; | |
238 | + border-width: 0px 0px 0px 10px; | |
239 | + border-color: #edc600; | |
240 | +} | |
241 | + | |
242 | +.border-passed { | |
243 | + border-top-left-radius: 10px 10px; | |
244 | + border-bottom-left-radius: 10px 10px; | |
245 | + border-style: solid; | |
246 | + border-width: 0px 0px 0px 10px; | |
247 | + border-color: #19f52d; | |
248 | +} | |
249 | + | |
250 | +.times-div { | |
251 | + text-align: center; | |
252 | + padding: 5px; | |
253 | +} | |
254 | + | |
255 | +.suite-total-time { | |
256 | + font: 16px 'Lucida Grande'; | |
257 | +} | |
258 | + | |
259 | +.configuration-suite { | |
260 | + margin-left: 20px; | |
261 | +} | |
262 | + | |
263 | +.configuration-test { | |
264 | + margin-left: 40px; | |
265 | +} | |
266 | + | |
267 | +.configuration-class { | |
268 | + margin-left: 60px; | |
269 | +} | |
270 | + | |
271 | +.configuration-method { | |
272 | + margin-left: 80px; | |
273 | +} | |
274 | + | |
275 | +.test-method { | |
276 | + margin-left: 100px; | |
277 | +} | |
278 | + | |
279 | +.chronological-class { | |
280 | + background-color: #0ccff; | |
281 | + border-style: solid; | |
282 | + border-width: 0px 0px 1px 1px; | |
283 | +} | |
284 | + | |
285 | +.method-start { | |
286 | + float: right; | |
287 | +} | |
288 | + | |
289 | +.chronological-class-name { | |
290 | + padding: 0px 0px 0px 5px; | |
291 | + color: #008; | |
292 | +} | |
293 | + | |
294 | +.after, .before, .test-method { | |
295 | + font-family: monospace; | |
296 | + font-size: 14px; | |
297 | +} | |
298 | + | |
299 | +.navigator-suite-header { | |
300 | + font-size: 22px; | |
301 | + margin: 0px 10px 5px 0px; | |
302 | + background-color: #deb887; | |
303 | + text-align: center; | |
304 | +} | |
305 | + | |
306 | +.collapse-all-icon { | |
307 | + padding: 5px; | |
308 | + float: right; | |
309 | +} | ... | ... |
1 | +++ a/target/surefire-reports/testng-reports.js | |
... | ... | @@ -0,0 +1,122 @@ |
1 | +$(document).ready(function() { | |
2 | + $('a.navigator-link').click(function() { | |
3 | + // Extract the panel for this link | |
4 | + var panel = getPanelName($(this)); | |
5 | + | |
6 | + // Mark this link as currently selected | |
7 | + $('.navigator-link').parent().removeClass('navigator-selected'); | |
8 | + $(this).parent().addClass('navigator-selected'); | |
9 | + | |
10 | + showPanel(panel); | |
11 | + }); | |
12 | + | |
13 | + installMethodHandlers('failed'); | |
14 | + installMethodHandlers('skipped'); | |
15 | + installMethodHandlers('passed', true); // hide passed methods by default | |
16 | + | |
17 | + $('a.method').click(function() { | |
18 | + showMethod($(this)); | |
19 | + return false; | |
20 | + }); | |
21 | + | |
22 | + // Hide all the panels and display the first one (do this last | |
23 | + // to make sure the click() will invoke the listeners) | |
24 | + $('.panel').hide(); | |
25 | + $('.navigator-link').first().click(); | |
26 | + | |
27 | + // Collapse/expand the suites | |
28 | + $('a.collapse-all-link').click(function() { | |
29 | + var contents = $('.navigator-suite-content'); | |
30 | + if (contents.css('display') == 'none') { | |
31 | + contents.show(); | |
32 | + } else { | |
33 | + contents.hide(); | |
34 | + } | |
35 | + }); | |
36 | +}); | |
37 | + | |
38 | +// The handlers that take care of showing/hiding the methods | |
39 | +function installMethodHandlers(name, hide) { | |
40 | + function getContent(t) { | |
41 | + return $('.method-list-content.' + name + "." + t.attr('panel-name')); | |
42 | + } | |
43 | + | |
44 | + function getHideLink(t, name) { | |
45 | + var s = 'a.hide-methods.' + name + "." + t.attr('panel-name'); | |
46 | + return $(s); | |
47 | + } | |
48 | + | |
49 | + function getShowLink(t, name) { | |
50 | + return $('a.show-methods.' + name + "." + t.attr('panel-name')); | |
51 | + } | |
52 | + | |
53 | + function getMethodPanelClassSel(element, name) { | |
54 | + var panelName = getPanelName(element); | |
55 | + var sel = '.' + panelName + "-class-" + name; | |
56 | + return $(sel); | |
57 | + } | |
58 | + | |
59 | + $('a.hide-methods.' + name).click(function() { | |
60 | + var w = getContent($(this)); | |
61 | + w.hide(); | |
62 | + getHideLink($(this), name).hide(); | |
63 | + getShowLink($(this), name).show(); | |
64 | + getMethodPanelClassSel($(this), name).hide(); | |
65 | + }); | |
66 | + | |
67 | + $('a.show-methods.' + name).click(function() { | |
68 | + var w = getContent($(this)); | |
69 | + w.show(); | |
70 | + getHideLink($(this), name).show(); | |
71 | + getShowLink($(this), name).hide(); | |
72 | + showPanel(getPanelName($(this))); | |
73 | + getMethodPanelClassSel($(this), name).show(); | |
74 | + }); | |
75 | + | |
76 | + if (hide) { | |
77 | + $('a.hide-methods.' + name).click(); | |
78 | + } else { | |
79 | + $('a.show-methods.' + name).click(); | |
80 | + } | |
81 | +} | |
82 | + | |
83 | +function getHashForMethod(element) { | |
84 | + return element.attr('hash-for-method'); | |
85 | +} | |
86 | + | |
87 | +function getPanelName(element) { | |
88 | + return element.attr('panel-name'); | |
89 | +} | |
90 | + | |
91 | +function showPanel(panelName) { | |
92 | + $('.panel').hide(); | |
93 | + var panel = $('.panel[panel-name="' + panelName + '"]'); | |
94 | + panel.show(); | |
95 | +} | |
96 | + | |
97 | +function showMethod(element) { | |
98 | + var hashTag = getHashForMethod(element); | |
99 | + var panelName = getPanelName(element); | |
100 | + showPanel(panelName); | |
101 | + var current = document.location.href; | |
102 | + var base = current.substring(0, current.indexOf('#')) | |
103 | + document.location.href = base + '#' + hashTag; | |
104 | + var newPosition = $(document).scrollTop() - 65; | |
105 | + $(document).scrollTop(newPosition); | |
106 | +} | |
107 | + | |
108 | +function drawTable() { | |
109 | + for (var i = 0; i < suiteTableInitFunctions.length; i++) { | |
110 | + window[suiteTableInitFunctions[i]](); | |
111 | + } | |
112 | + | |
113 | + for (var k in window.suiteTableData) { | |
114 | + var v = window.suiteTableData[k]; | |
115 | + var div = v.tableDiv; | |
116 | + var data = v.tableData | |
117 | + var table = new google.visualization.Table(document.getElementById(div)); | |
118 | + table.draw(data, { | |
119 | + showRowNumber : false | |
120 | + }); | |
121 | + } | |
122 | +} | ... | ... |
1 | +++ a/target/surefire-reports/testng-results.xml | |
... | ... | @@ -0,0 +1,53 @@ |
1 | +<?xml version="1.0" encoding="UTF-8"?> | |
2 | +<testng-results skipped="0" failed="0" ignored="0" total="2" passed="2"> | |
3 | + <reporter-output> | |
4 | + </reporter-output> | |
5 | + <suite name="bpms自动化测试" duration-ms="44303" started-at="2018-04-10T10:25:13Z" finished-at="2018-04-10T10:25:58Z"> | |
6 | + <groups> | |
7 | + </groups> | |
8 | + <test name="login" duration-ms="44303" started-at="2018-04-10T10:25:13Z" finished-at="2018-04-10T10:25:58Z"> | |
9 | + <class name="com.essa.testSuite.Test_Login"> | |
10 | + <test-method status="PASS" signature="setUp()[pri:0, instance:com.essa.testSuite.Test_Login@1b6a447]" name="setUp" is-config="true" duration-ms="14081" started-at="2018-04-10T10:25:13Z" finished-at="2018-04-10T10:25:27Z"> | |
11 | + <reporter-output> | |
12 | + </reporter-output> | |
13 | + </test-method> <!-- setUp --> | |
14 | + <test-method status="PASS" signature="login(java.lang.String, java.lang.String)[pri:0, instance:com.essa.testSuite.Test_Login@1b6a447]" name="login" duration-ms="8676" started-at="2018-04-10T10:25:30Z" data-provider="users" finished-at="2018-04-10T10:25:38Z"> | |
15 | + <params> | |
16 | + <param index="0"> | |
17 | + <value> | |
18 | + <![CDATA[admin]]> | |
19 | + </value> | |
20 | + </param> | |
21 | + <param index="1"> | |
22 | + <value> | |
23 | + <![CDATA[essa123]]> | |
24 | + </value> | |
25 | + </param> | |
26 | + </params> | |
27 | + <reporter-output> | |
28 | + </reporter-output> | |
29 | + </test-method> <!-- login --> | |
30 | + <test-method status="PASS" signature="login(java.lang.String, java.lang.String)[pri:0, instance:com.essa.testSuite.Test_Login@1b6a447]" name="login" duration-ms="10933" started-at="2018-04-10T10:25:38Z" data-provider="users" finished-at="2018-04-10T10:25:49Z"> | |
31 | + <params> | |
32 | + <param index="0"> | |
33 | + <value> | |
34 | + <![CDATA[linrong]]> | |
35 | + </value> | |
36 | + </param> | |
37 | + <param index="1"> | |
38 | + <value> | |
39 | + <![CDATA[essa123]]> | |
40 | + </value> | |
41 | + </param> | |
42 | + </params> | |
43 | + <reporter-output> | |
44 | + </reporter-output> | |
45 | + </test-method> <!-- login --> | |
46 | + <test-method status="PASS" signature="tearDown()[pri:0, instance:com.essa.testSuite.Test_Login@1b6a447]" name="tearDown" is-config="true" duration-ms="8429" started-at="2018-04-10T10:25:49Z" finished-at="2018-04-10T10:25:58Z"> | |
47 | + <reporter-output> | |
48 | + </reporter-output> | |
49 | + </test-method> <!-- tearDown --> | |
50 | + </class> <!-- com.essa.testSuite.Test_Login --> | |
51 | + </test> <!-- login --> | |
52 | + </suite> <!-- bpms自动化测试 --> | |
53 | +</testng-results> | ... | ... |
1 | +++ a/target/surefire-reports/testng.css | |
... | ... | @@ -0,0 +1,9 @@ |
1 | +.invocation-failed, .test-failed { background-color: #DD0000; } | |
2 | +.invocation-percent, .test-percent { background-color: #006600; } | |
3 | +.invocation-passed, .test-passed { background-color: #00AA00; } | |
4 | +.invocation-skipped, .test-skipped { background-color: #CCCC00; } | |
5 | + | |
6 | +.main-page { | |
7 | + font-size: x-large; | |
8 | +} | |
9 | + | ... | ... |
1 | +++ a/target/surefire/surefire2165407935539232655tmp | |
... | ... | @@ -0,0 +1,62 @@ |
1 | +#surefire | |
2 | +#Tue Apr 10 18:11:15 CST 2018 | |
3 | +enableAssertions=true | |
4 | +testSuiteDefinitionTestSourceDirectory=E\:\\work\\essa\\src\\test\\java | |
5 | +classPathUrl.39=C\:\\Users\\jin\\.m2\\repository\\commons-io\\commons-io\\1.3.2\\commons-io-1.3.2.jar | |
6 | +classPathUrl.38=C\:\\Users\\jin\\.m2\\repository\\stax\\stax-api\\1.0.1\\stax-api-1.0.1.jar | |
7 | +classPathUrl.37=C\:\\Users\\jin\\.m2\\repository\\org\\apache\\xmlbeans\\xmlbeans\\2.6.0\\xmlbeans-2.6.0.jar | |
8 | +classPathUrl.36=C\:\\Users\\jin\\.m2\\repository\\org\\apache\\poi\\poi-ooxml-schemas\\3.17\\poi-ooxml-schemas-3.17.jar | |
9 | +classPathUrl.35=C\:\\Users\\jin\\.m2\\repository\\com\\github\\virtuald\\curvesapi\\1.04\\curvesapi-1.04.jar | |
10 | +classPathUrl.34=C\:\\Users\\jin\\.m2\\repository\\org\\apache\\poi\\poi-ooxml\\3.17\\poi-ooxml-3.17.jar | |
11 | +surefireClassPathUrl.3=C\:\\Users\\jin\\.m2\\repository\\org\\apache\\maven\\surefire\\surefire-api\\2.7.1\\surefire-api-2.7.1.jar | |
12 | +classPathUrl.33=C\:\\Users\\jin\\.m2\\repository\\org\\apache\\poi\\poi\\3.17\\poi-3.17.jar | |
13 | +surefireClassPathUrl.2=C\:\\Users\\jin\\.m2\\repository\\org\\codehaus\\plexus\\plexus-utils\\1.0.4\\plexus-utils-1.0.4.jar | |
14 | +classPathUrl.32=C\:\\Users\\jin\\.m2\\repository\\org\\apache\\commons\\commons-collections4\\4.1\\commons-collections4-4.1.jar | |
15 | +surefireClassPathUrl.1=C\:\\Users\\jin\\.m2\\repository\\org\\apache\\maven\\maven-artifact\\2.0\\maven-artifact-2.0.jar | |
16 | +classPathUrl.31=C\:\\Users\\jin\\.m2\\repository\\javax\\activation\\activation\\1.1\\activation-1.1.jar | |
17 | +surefireClassPathUrl.0=C\:\\Users\\jin\\.m2\\repository\\org\\apache\\maven\\surefire\\surefire-testng\\2.7.1\\surefire-testng-2.7.1.jar | |
18 | +classPathUrl.30=C\:\\Users\\jin\\.m2\\repository\\javax\\mail\\mail\\1.4\\mail-1.4.jar | |
19 | +classPathUrl.9=C\:\\Users\\jin\\.m2\\repository\\org\\seleniumhq\\selenium\\selenium-remote-driver\\3.11.0\\selenium-remote-driver-3.11.0.jar | |
20 | +classPathUrl.8=C\:\\Users\\jin\\.m2\\repository\\org\\seleniumhq\\selenium\\selenium-opera-driver\\3.11.0\\selenium-opera-driver-3.11.0.jar | |
21 | +classPathUrl.7=C\:\\Users\\jin\\.m2\\repository\\org\\seleniumhq\\selenium\\selenium-edge-driver\\3.11.0\\selenium-edge-driver-3.11.0.jar | |
22 | +classPathUrl.6=C\:\\Users\\jin\\.m2\\repository\\org\\seleniumhq\\selenium\\selenium-api\\3.11.0\\selenium-api-3.11.0.jar | |
23 | +classPathUrl.5=C\:\\Users\\jin\\.m2\\repository\\org\\seleniumhq\\selenium\\selenium-java\\3.11.0\\selenium-java-3.11.0.jar | |
24 | +classPathUrl.4=C\:\\Users\\jin\\.m2\\repository\\org\\apache-extras\\beanshell\\bsh\\2.0b6\\bsh-2.0b6.jar | |
25 | +classPathUrl.3=C\:\\Users\\jin\\.m2\\repository\\com\\beust\\jcommander\\1.72\\jcommander-1.72.jar | |
26 | +classPathUrl.2=C\:\\Users\\jin\\.m2\\repository\\org\\testng\\testng\\6.14.2\\testng-6.14.2.jar | |
27 | +classPathUrl.1=E\:\\work\\essa\\target\\classes | |
28 | +report.2=org.apache.maven.surefire.report.XMLReporter | |
29 | +classPathUrl.0=E\:\\work\\essa\\target\\test-classes | |
30 | +report.1=org.apache.maven.surefire.report.BriefFileReporter | |
31 | +childDelegation=false | |
32 | +report.0=org.apache.maven.surefire.report.ForkingConsoleReporter | |
33 | +isTrimStackTrace=true | |
34 | +classPathUrl.29=C\:\\Users\\jin\\.m2\\repository\\org\\seleniumhq\\selenium\\selenium-support\\2.46.0\\selenium-support-2.46.0.jar | |
35 | +classPathUrl.28=C\:\\Users\\jin\\.m2\\repository\\org\\seleniumhq\\selenium\\selenium-ie-driver\\3.11.0\\selenium-ie-driver-3.11.0.jar | |
36 | +classPathUrl.27=C\:\\Users\\jin\\.m2\\repository\\org\\seleniumhq\\selenium\\selenium-safari-driver\\3.11.0\\selenium-safari-driver-3.11.0.jar | |
37 | +testFwJarVersion=6.14.2 | |
38 | +classPathUrl.26=C\:\\Users\\jin\\.m2\\repository\\org\\seleniumhq\\selenium\\selenium-chrome-driver\\3.11.0\\selenium-chrome-driver-3.11.0.jar | |
39 | +classPathUrl.25=C\:\\Users\\jin\\.m2\\repository\\org\\seleniumhq\\selenium\\selenium-firefox-driver\\3.11.0\\selenium-firefox-driver-3.11.0.jar | |
40 | +classPathUrl.24=C\:\\Users\\jin\\.m2\\repository\\com\\squareup\\okio\\okio\\1.13.0\\okio-1.13.0.jar | |
41 | +reportsDirectory=E\:\\work\\essa\\target\\surefire-reports | |
42 | +classPathUrl.23=C\:\\Users\\jin\\.m2\\repository\\com\\squareup\\okhttp3\\okhttp\\3.9.1\\okhttp-3.9.1.jar | |
43 | +classPathUrl.22=C\:\\Users\\jin\\.m2\\repository\\org\\apache\\httpcomponents\\httpcore\\4.4.6\\httpcore-4.4.6.jar | |
44 | +classPathUrl.21=C\:\\Users\\jin\\.m2\\repository\\org\\apache\\httpcomponents\\httpclient\\4.5.3\\httpclient-4.5.3.jar | |
45 | +classPathUrl.20=C\:\\Users\\jin\\.m2\\repository\\org\\codehaus\\mojo\\animal-sniffer-annotations\\1.14\\animal-sniffer-annotations-1.14.jar | |
46 | +failIfNoTests=false | |
47 | +useManifestOnlyJar=true | |
48 | +testng.test.classpath=E\:\\work\\essa\\target\\test-classes | |
49 | +dirscanner.0=directoryScannerOptions | |
50 | +classPathUrl.19=C\:\\Users\\jin\\.m2\\repository\\com\\google\\j2objc\\j2objc-annotations\\1.1\\j2objc-annotations-1.1.jar | |
51 | +classPathUrl.18=C\:\\Users\\jin\\.m2\\repository\\com\\google\\errorprone\\error_prone_annotations\\2.1.3\\error_prone_annotations-2.1.3.jar | |
52 | +classPathUrl.17=C\:\\Users\\jin\\.m2\\repository\\org\\checkerframework\\checker-compat-qual\\2.0.0\\checker-compat-qual-2.0.0.jar | |
53 | +classPathUrl.16=C\:\\Users\\jin\\.m2\\repository\\com\\google\\code\\findbugs\\jsr305\\1.3.9\\jsr305-1.3.9.jar | |
54 | +classPathUrl.15=C\:\\Users\\jin\\.m2\\repository\\com\\google\\guava\\guava\\23.6-jre\\guava-23.6-jre.jar | |
55 | +classPathUrl.14=C\:\\Users\\jin\\.m2\\repository\\com\\google\\code\\gson\\gson\\2.8.2\\gson-2.8.2.jar | |
56 | +classPathUrl.13=C\:\\Users\\jin\\.m2\\repository\\commons-logging\\commons-logging\\1.2\\commons-logging-1.2.jar | |
57 | +testSuiteXmlFiles0=E\:\\work\\essa\\suites\\testng.xml | |
58 | +classPathUrl.12=C\:\\Users\\jin\\.m2\\repository\\commons-codec\\commons-codec\\1.10\\commons-codec-1.10.jar | |
59 | +providerConfiguration=org.apache.maven.surefire.testng.TestNGProvider | |
60 | +classPathUrl.11=C\:\\Users\\jin\\.m2\\repository\\org\\apache\\commons\\commons-exec\\1.3\\commons-exec-1.3.jar | |
61 | +classPathUrl.10=C\:\\Users\\jin\\.m2\\repository\\net\\bytebuddy\\byte-buddy\\1.7.9\\byte-buddy-1.7.9.jar | |
62 | +useSystemClassLoader=true | ... | ... |
1 | +++ a/target/surefire/surefire2461867590626624403tmp | |
... | ... | @@ -0,0 +1,62 @@ |
1 | +#surefire | |
2 | +#Tue Apr 10 18:16:16 CST 2018 | |
3 | +enableAssertions=true | |
4 | +testSuiteDefinitionTestSourceDirectory=E\:\\work\\essa\\src\\test\\java | |
5 | +classPathUrl.39=C\:\\Users\\jin\\.m2\\repository\\commons-io\\commons-io\\1.3.2\\commons-io-1.3.2.jar | |
6 | +classPathUrl.38=C\:\\Users\\jin\\.m2\\repository\\stax\\stax-api\\1.0.1\\stax-api-1.0.1.jar | |
7 | +classPathUrl.37=C\:\\Users\\jin\\.m2\\repository\\org\\apache\\xmlbeans\\xmlbeans\\2.6.0\\xmlbeans-2.6.0.jar | |
8 | +classPathUrl.36=C\:\\Users\\jin\\.m2\\repository\\org\\apache\\poi\\poi-ooxml-schemas\\3.17\\poi-ooxml-schemas-3.17.jar | |
9 | +classPathUrl.35=C\:\\Users\\jin\\.m2\\repository\\com\\github\\virtuald\\curvesapi\\1.04\\curvesapi-1.04.jar | |
10 | +classPathUrl.34=C\:\\Users\\jin\\.m2\\repository\\org\\apache\\poi\\poi-ooxml\\3.17\\poi-ooxml-3.17.jar | |
11 | +surefireClassPathUrl.3=C\:\\Users\\jin\\.m2\\repository\\org\\apache\\maven\\surefire\\surefire-api\\2.7.1\\surefire-api-2.7.1.jar | |
12 | +classPathUrl.33=C\:\\Users\\jin\\.m2\\repository\\org\\apache\\poi\\poi\\3.17\\poi-3.17.jar | |
13 | +surefireClassPathUrl.2=C\:\\Users\\jin\\.m2\\repository\\org\\codehaus\\plexus\\plexus-utils\\1.0.4\\plexus-utils-1.0.4.jar | |
14 | +classPathUrl.32=C\:\\Users\\jin\\.m2\\repository\\org\\apache\\commons\\commons-collections4\\4.1\\commons-collections4-4.1.jar | |
15 | +surefireClassPathUrl.1=C\:\\Users\\jin\\.m2\\repository\\org\\apache\\maven\\maven-artifact\\2.0\\maven-artifact-2.0.jar | |
16 | +classPathUrl.31=C\:\\Users\\jin\\.m2\\repository\\javax\\activation\\activation\\1.1\\activation-1.1.jar | |
17 | +surefireClassPathUrl.0=C\:\\Users\\jin\\.m2\\repository\\org\\apache\\maven\\surefire\\surefire-testng\\2.7.1\\surefire-testng-2.7.1.jar | |
18 | +classPathUrl.30=C\:\\Users\\jin\\.m2\\repository\\javax\\mail\\mail\\1.4\\mail-1.4.jar | |
19 | +classPathUrl.9=C\:\\Users\\jin\\.m2\\repository\\org\\seleniumhq\\selenium\\selenium-remote-driver\\3.11.0\\selenium-remote-driver-3.11.0.jar | |
20 | +classPathUrl.8=C\:\\Users\\jin\\.m2\\repository\\org\\seleniumhq\\selenium\\selenium-opera-driver\\3.11.0\\selenium-opera-driver-3.11.0.jar | |
21 | +classPathUrl.7=C\:\\Users\\jin\\.m2\\repository\\org\\seleniumhq\\selenium\\selenium-edge-driver\\3.11.0\\selenium-edge-driver-3.11.0.jar | |
22 | +classPathUrl.6=C\:\\Users\\jin\\.m2\\repository\\org\\seleniumhq\\selenium\\selenium-api\\3.11.0\\selenium-api-3.11.0.jar | |
23 | +classPathUrl.5=C\:\\Users\\jin\\.m2\\repository\\org\\seleniumhq\\selenium\\selenium-java\\3.11.0\\selenium-java-3.11.0.jar | |
24 | +classPathUrl.4=C\:\\Users\\jin\\.m2\\repository\\org\\apache-extras\\beanshell\\bsh\\2.0b6\\bsh-2.0b6.jar | |
25 | +classPathUrl.3=C\:\\Users\\jin\\.m2\\repository\\com\\beust\\jcommander\\1.72\\jcommander-1.72.jar | |
26 | +classPathUrl.2=C\:\\Users\\jin\\.m2\\repository\\org\\testng\\testng\\6.14.2\\testng-6.14.2.jar | |
27 | +classPathUrl.1=E\:\\work\\essa\\target\\classes | |
28 | +report.2=org.apache.maven.surefire.report.XMLReporter | |
29 | +classPathUrl.0=E\:\\work\\essa\\target\\test-classes | |
30 | +report.1=org.apache.maven.surefire.report.BriefFileReporter | |
31 | +childDelegation=false | |
32 | +report.0=org.apache.maven.surefire.report.ForkingConsoleReporter | |
33 | +isTrimStackTrace=true | |
34 | +classPathUrl.29=C\:\\Users\\jin\\.m2\\repository\\org\\seleniumhq\\selenium\\selenium-support\\2.46.0\\selenium-support-2.46.0.jar | |
35 | +classPathUrl.28=C\:\\Users\\jin\\.m2\\repository\\org\\seleniumhq\\selenium\\selenium-ie-driver\\3.11.0\\selenium-ie-driver-3.11.0.jar | |
36 | +classPathUrl.27=C\:\\Users\\jin\\.m2\\repository\\org\\seleniumhq\\selenium\\selenium-safari-driver\\3.11.0\\selenium-safari-driver-3.11.0.jar | |
37 | +testFwJarVersion=6.14.2 | |
38 | +classPathUrl.26=C\:\\Users\\jin\\.m2\\repository\\org\\seleniumhq\\selenium\\selenium-chrome-driver\\3.11.0\\selenium-chrome-driver-3.11.0.jar | |
39 | +classPathUrl.25=C\:\\Users\\jin\\.m2\\repository\\org\\seleniumhq\\selenium\\selenium-firefox-driver\\3.11.0\\selenium-firefox-driver-3.11.0.jar | |
40 | +classPathUrl.24=C\:\\Users\\jin\\.m2\\repository\\com\\squareup\\okio\\okio\\1.13.0\\okio-1.13.0.jar | |
41 | +reportsDirectory=E\:\\work\\essa\\target\\surefire-reports | |
42 | +classPathUrl.23=C\:\\Users\\jin\\.m2\\repository\\com\\squareup\\okhttp3\\okhttp\\3.9.1\\okhttp-3.9.1.jar | |
43 | +classPathUrl.22=C\:\\Users\\jin\\.m2\\repository\\org\\apache\\httpcomponents\\httpcore\\4.4.6\\httpcore-4.4.6.jar | |
44 | +classPathUrl.21=C\:\\Users\\jin\\.m2\\repository\\org\\apache\\httpcomponents\\httpclient\\4.5.3\\httpclient-4.5.3.jar | |
45 | +classPathUrl.20=C\:\\Users\\jin\\.m2\\repository\\org\\codehaus\\mojo\\animal-sniffer-annotations\\1.14\\animal-sniffer-annotations-1.14.jar | |
46 | +failIfNoTests=false | |
47 | +useManifestOnlyJar=true | |
48 | +testng.test.classpath=E\:\\work\\essa\\target\\test-classes | |
49 | +dirscanner.0=directoryScannerOptions | |
50 | +classPathUrl.19=C\:\\Users\\jin\\.m2\\repository\\com\\google\\j2objc\\j2objc-annotations\\1.1\\j2objc-annotations-1.1.jar | |
51 | +classPathUrl.18=C\:\\Users\\jin\\.m2\\repository\\com\\google\\errorprone\\error_prone_annotations\\2.1.3\\error_prone_annotations-2.1.3.jar | |
52 | +classPathUrl.17=C\:\\Users\\jin\\.m2\\repository\\org\\checkerframework\\checker-compat-qual\\2.0.0\\checker-compat-qual-2.0.0.jar | |
53 | +classPathUrl.16=C\:\\Users\\jin\\.m2\\repository\\com\\google\\code\\findbugs\\jsr305\\1.3.9\\jsr305-1.3.9.jar | |
54 | +classPathUrl.15=C\:\\Users\\jin\\.m2\\repository\\com\\google\\guava\\guava\\23.6-jre\\guava-23.6-jre.jar | |
55 | +classPathUrl.14=C\:\\Users\\jin\\.m2\\repository\\com\\google\\code\\gson\\gson\\2.8.2\\gson-2.8.2.jar | |
56 | +classPathUrl.13=C\:\\Users\\jin\\.m2\\repository\\commons-logging\\commons-logging\\1.2\\commons-logging-1.2.jar | |
57 | +testSuiteXmlFiles0=E\:\\work\\essa\\suites\\testng.xml | |
58 | +classPathUrl.12=C\:\\Users\\jin\\.m2\\repository\\commons-codec\\commons-codec\\1.10\\commons-codec-1.10.jar | |
59 | +providerConfiguration=org.apache.maven.surefire.testng.TestNGProvider | |
60 | +classPathUrl.11=C\:\\Users\\jin\\.m2\\repository\\org\\apache\\commons\\commons-exec\\1.3\\commons-exec-1.3.jar | |
61 | +classPathUrl.10=C\:\\Users\\jin\\.m2\\repository\\net\\bytebuddy\\byte-buddy\\1.7.9\\byte-buddy-1.7.9.jar | |
62 | +useSystemClassLoader=true | ... | ... |
1 | +++ a/target/surefire/surefire2809287539438424410tmp | |
... | ... | @@ -0,0 +1,62 @@ |
1 | +#surefire | |
2 | +#Tue Apr 10 18:25:12 CST 2018 | |
3 | +enableAssertions=true | |
4 | +testSuiteDefinitionTestSourceDirectory=E\:\\work\\essa\\src\\test\\java | |
5 | +classPathUrl.39=C\:\\Users\\jin\\.m2\\repository\\commons-io\\commons-io\\1.3.2\\commons-io-1.3.2.jar | |
6 | +classPathUrl.38=C\:\\Users\\jin\\.m2\\repository\\stax\\stax-api\\1.0.1\\stax-api-1.0.1.jar | |
7 | +classPathUrl.37=C\:\\Users\\jin\\.m2\\repository\\org\\apache\\xmlbeans\\xmlbeans\\2.6.0\\xmlbeans-2.6.0.jar | |
8 | +classPathUrl.36=C\:\\Users\\jin\\.m2\\repository\\org\\apache\\poi\\poi-ooxml-schemas\\3.17\\poi-ooxml-schemas-3.17.jar | |
9 | +classPathUrl.35=C\:\\Users\\jin\\.m2\\repository\\com\\github\\virtuald\\curvesapi\\1.04\\curvesapi-1.04.jar | |
10 | +classPathUrl.34=C\:\\Users\\jin\\.m2\\repository\\org\\apache\\poi\\poi-ooxml\\3.17\\poi-ooxml-3.17.jar | |
11 | +surefireClassPathUrl.3=C\:\\Users\\jin\\.m2\\repository\\org\\apache\\maven\\surefire\\surefire-api\\2.7.1\\surefire-api-2.7.1.jar | |
12 | +classPathUrl.33=C\:\\Users\\jin\\.m2\\repository\\org\\apache\\poi\\poi\\3.17\\poi-3.17.jar | |
13 | +surefireClassPathUrl.2=C\:\\Users\\jin\\.m2\\repository\\org\\codehaus\\plexus\\plexus-utils\\1.0.4\\plexus-utils-1.0.4.jar | |
14 | +classPathUrl.32=C\:\\Users\\jin\\.m2\\repository\\org\\apache\\commons\\commons-collections4\\4.1\\commons-collections4-4.1.jar | |
15 | +surefireClassPathUrl.1=C\:\\Users\\jin\\.m2\\repository\\org\\apache\\maven\\maven-artifact\\2.0\\maven-artifact-2.0.jar | |
16 | +classPathUrl.31=C\:\\Users\\jin\\.m2\\repository\\javax\\activation\\activation\\1.1\\activation-1.1.jar | |
17 | +surefireClassPathUrl.0=C\:\\Users\\jin\\.m2\\repository\\org\\apache\\maven\\surefire\\surefire-testng\\2.7.1\\surefire-testng-2.7.1.jar | |
18 | +classPathUrl.30=C\:\\Users\\jin\\.m2\\repository\\javax\\mail\\mail\\1.4\\mail-1.4.jar | |
19 | +classPathUrl.9=C\:\\Users\\jin\\.m2\\repository\\org\\seleniumhq\\selenium\\selenium-remote-driver\\3.11.0\\selenium-remote-driver-3.11.0.jar | |
20 | +classPathUrl.8=C\:\\Users\\jin\\.m2\\repository\\org\\seleniumhq\\selenium\\selenium-opera-driver\\3.11.0\\selenium-opera-driver-3.11.0.jar | |
21 | +classPathUrl.7=C\:\\Users\\jin\\.m2\\repository\\org\\seleniumhq\\selenium\\selenium-edge-driver\\3.11.0\\selenium-edge-driver-3.11.0.jar | |
22 | +classPathUrl.6=C\:\\Users\\jin\\.m2\\repository\\org\\seleniumhq\\selenium\\selenium-api\\3.11.0\\selenium-api-3.11.0.jar | |
23 | +classPathUrl.5=C\:\\Users\\jin\\.m2\\repository\\org\\seleniumhq\\selenium\\selenium-java\\3.11.0\\selenium-java-3.11.0.jar | |
24 | +classPathUrl.4=C\:\\Users\\jin\\.m2\\repository\\org\\apache-extras\\beanshell\\bsh\\2.0b6\\bsh-2.0b6.jar | |
25 | +classPathUrl.3=C\:\\Users\\jin\\.m2\\repository\\com\\beust\\jcommander\\1.72\\jcommander-1.72.jar | |
26 | +classPathUrl.2=C\:\\Users\\jin\\.m2\\repository\\org\\testng\\testng\\6.14.2\\testng-6.14.2.jar | |
27 | +classPathUrl.1=E\:\\work\\essa\\target\\classes | |
28 | +report.2=org.apache.maven.surefire.report.XMLReporter | |
29 | +classPathUrl.0=E\:\\work\\essa\\target\\test-classes | |
30 | +report.1=org.apache.maven.surefire.report.BriefFileReporter | |
31 | +childDelegation=false | |
32 | +report.0=org.apache.maven.surefire.report.ForkingConsoleReporter | |
33 | +isTrimStackTrace=true | |
34 | +classPathUrl.29=C\:\\Users\\jin\\.m2\\repository\\org\\seleniumhq\\selenium\\selenium-support\\2.46.0\\selenium-support-2.46.0.jar | |
35 | +classPathUrl.28=C\:\\Users\\jin\\.m2\\repository\\org\\seleniumhq\\selenium\\selenium-ie-driver\\3.11.0\\selenium-ie-driver-3.11.0.jar | |
36 | +classPathUrl.27=C\:\\Users\\jin\\.m2\\repository\\org\\seleniumhq\\selenium\\selenium-safari-driver\\3.11.0\\selenium-safari-driver-3.11.0.jar | |
37 | +testFwJarVersion=6.14.2 | |
38 | +classPathUrl.26=C\:\\Users\\jin\\.m2\\repository\\org\\seleniumhq\\selenium\\selenium-chrome-driver\\3.11.0\\selenium-chrome-driver-3.11.0.jar | |
39 | +classPathUrl.25=C\:\\Users\\jin\\.m2\\repository\\org\\seleniumhq\\selenium\\selenium-firefox-driver\\3.11.0\\selenium-firefox-driver-3.11.0.jar | |
40 | +classPathUrl.24=C\:\\Users\\jin\\.m2\\repository\\com\\squareup\\okio\\okio\\1.13.0\\okio-1.13.0.jar | |
41 | +reportsDirectory=E\:\\work\\essa\\target\\surefire-reports | |
42 | +classPathUrl.23=C\:\\Users\\jin\\.m2\\repository\\com\\squareup\\okhttp3\\okhttp\\3.9.1\\okhttp-3.9.1.jar | |
43 | +classPathUrl.22=C\:\\Users\\jin\\.m2\\repository\\org\\apache\\httpcomponents\\httpcore\\4.4.6\\httpcore-4.4.6.jar | |
44 | +classPathUrl.21=C\:\\Users\\jin\\.m2\\repository\\org\\apache\\httpcomponents\\httpclient\\4.5.3\\httpclient-4.5.3.jar | |
45 | +classPathUrl.20=C\:\\Users\\jin\\.m2\\repository\\org\\codehaus\\mojo\\animal-sniffer-annotations\\1.14\\animal-sniffer-annotations-1.14.jar | |
46 | +failIfNoTests=false | |
47 | +useManifestOnlyJar=true | |
48 | +testng.test.classpath=E\:\\work\\essa\\target\\test-classes | |
49 | +dirscanner.0=directoryScannerOptions | |
50 | +classPathUrl.19=C\:\\Users\\jin\\.m2\\repository\\com\\google\\j2objc\\j2objc-annotations\\1.1\\j2objc-annotations-1.1.jar | |
51 | +classPathUrl.18=C\:\\Users\\jin\\.m2\\repository\\com\\google\\errorprone\\error_prone_annotations\\2.1.3\\error_prone_annotations-2.1.3.jar | |
52 | +classPathUrl.17=C\:\\Users\\jin\\.m2\\repository\\org\\checkerframework\\checker-compat-qual\\2.0.0\\checker-compat-qual-2.0.0.jar | |
53 | +classPathUrl.16=C\:\\Users\\jin\\.m2\\repository\\com\\google\\code\\findbugs\\jsr305\\1.3.9\\jsr305-1.3.9.jar | |
54 | +classPathUrl.15=C\:\\Users\\jin\\.m2\\repository\\com\\google\\guava\\guava\\23.6-jre\\guava-23.6-jre.jar | |
55 | +classPathUrl.14=C\:\\Users\\jin\\.m2\\repository\\com\\google\\code\\gson\\gson\\2.8.2\\gson-2.8.2.jar | |
56 | +classPathUrl.13=C\:\\Users\\jin\\.m2\\repository\\commons-logging\\commons-logging\\1.2\\commons-logging-1.2.jar | |
57 | +testSuiteXmlFiles0=E\:\\work\\essa\\suites\\testng.xml | |
58 | +classPathUrl.12=C\:\\Users\\jin\\.m2\\repository\\commons-codec\\commons-codec\\1.10\\commons-codec-1.10.jar | |
59 | +providerConfiguration=org.apache.maven.surefire.testng.TestNGProvider | |
60 | +classPathUrl.11=C\:\\Users\\jin\\.m2\\repository\\org\\apache\\commons\\commons-exec\\1.3\\commons-exec-1.3.jar | |
61 | +classPathUrl.10=C\:\\Users\\jin\\.m2\\repository\\net\\bytebuddy\\byte-buddy\\1.7.9\\byte-buddy-1.7.9.jar | |
62 | +useSystemClassLoader=true | ... | ... |
1 | +++ a/target/surefire/surefire5906040255932099436tmp | |
... | ... | @@ -0,0 +1,62 @@ |
1 | +#surefire | |
2 | +#Tue Apr 10 17:56:43 CST 2018 | |
3 | +enableAssertions=true | |
4 | +testSuiteDefinitionTestSourceDirectory=E\:\\work\\essa\\src\\test\\java | |
5 | +classPathUrl.39=C\:\\Users\\jin\\.m2\\repository\\commons-io\\commons-io\\1.3.2\\commons-io-1.3.2.jar | |
6 | +classPathUrl.38=C\:\\Users\\jin\\.m2\\repository\\stax\\stax-api\\1.0.1\\stax-api-1.0.1.jar | |
7 | +classPathUrl.37=C\:\\Users\\jin\\.m2\\repository\\org\\apache\\xmlbeans\\xmlbeans\\2.6.0\\xmlbeans-2.6.0.jar | |
8 | +classPathUrl.36=C\:\\Users\\jin\\.m2\\repository\\org\\apache\\poi\\poi-ooxml-schemas\\3.17\\poi-ooxml-schemas-3.17.jar | |
9 | +classPathUrl.35=C\:\\Users\\jin\\.m2\\repository\\com\\github\\virtuald\\curvesapi\\1.04\\curvesapi-1.04.jar | |
10 | +classPathUrl.34=C\:\\Users\\jin\\.m2\\repository\\org\\apache\\poi\\poi-ooxml\\3.17\\poi-ooxml-3.17.jar | |
11 | +surefireClassPathUrl.3=C\:\\Users\\jin\\.m2\\repository\\org\\apache\\maven\\surefire\\surefire-api\\2.7.1\\surefire-api-2.7.1.jar | |
12 | +classPathUrl.33=C\:\\Users\\jin\\.m2\\repository\\org\\apache\\poi\\poi\\3.17\\poi-3.17.jar | |
13 | +surefireClassPathUrl.2=C\:\\Users\\jin\\.m2\\repository\\org\\codehaus\\plexus\\plexus-utils\\1.0.4\\plexus-utils-1.0.4.jar | |
14 | +classPathUrl.32=C\:\\Users\\jin\\.m2\\repository\\org\\apache\\commons\\commons-collections4\\4.1\\commons-collections4-4.1.jar | |
15 | +surefireClassPathUrl.1=C\:\\Users\\jin\\.m2\\repository\\org\\apache\\maven\\maven-artifact\\2.0\\maven-artifact-2.0.jar | |
16 | +classPathUrl.31=C\:\\Users\\jin\\.m2\\repository\\javax\\activation\\activation\\1.1\\activation-1.1.jar | |
17 | +surefireClassPathUrl.0=C\:\\Users\\jin\\.m2\\repository\\org\\apache\\maven\\surefire\\surefire-testng\\2.7.1\\surefire-testng-2.7.1.jar | |
18 | +classPathUrl.30=C\:\\Users\\jin\\.m2\\repository\\javax\\mail\\mail\\1.4\\mail-1.4.jar | |
19 | +classPathUrl.9=C\:\\Users\\jin\\.m2\\repository\\org\\seleniumhq\\selenium\\selenium-remote-driver\\3.11.0\\selenium-remote-driver-3.11.0.jar | |
20 | +classPathUrl.8=C\:\\Users\\jin\\.m2\\repository\\org\\seleniumhq\\selenium\\selenium-opera-driver\\3.11.0\\selenium-opera-driver-3.11.0.jar | |
21 | +classPathUrl.7=C\:\\Users\\jin\\.m2\\repository\\org\\seleniumhq\\selenium\\selenium-edge-driver\\3.11.0\\selenium-edge-driver-3.11.0.jar | |
22 | +classPathUrl.6=C\:\\Users\\jin\\.m2\\repository\\org\\seleniumhq\\selenium\\selenium-api\\3.11.0\\selenium-api-3.11.0.jar | |
23 | +classPathUrl.5=C\:\\Users\\jin\\.m2\\repository\\org\\seleniumhq\\selenium\\selenium-java\\3.11.0\\selenium-java-3.11.0.jar | |
24 | +classPathUrl.4=C\:\\Users\\jin\\.m2\\repository\\org\\apache-extras\\beanshell\\bsh\\2.0b6\\bsh-2.0b6.jar | |
25 | +classPathUrl.3=C\:\\Users\\jin\\.m2\\repository\\com\\beust\\jcommander\\1.72\\jcommander-1.72.jar | |
26 | +classPathUrl.2=C\:\\Users\\jin\\.m2\\repository\\org\\testng\\testng\\6.14.2\\testng-6.14.2.jar | |
27 | +classPathUrl.1=E\:\\work\\essa\\target\\classes | |
28 | +report.2=org.apache.maven.surefire.report.XMLReporter | |
29 | +classPathUrl.0=E\:\\work\\essa\\target\\test-classes | |
30 | +report.1=org.apache.maven.surefire.report.BriefFileReporter | |
31 | +childDelegation=false | |
32 | +report.0=org.apache.maven.surefire.report.ForkingConsoleReporter | |
33 | +isTrimStackTrace=true | |
34 | +classPathUrl.29=C\:\\Users\\jin\\.m2\\repository\\org\\seleniumhq\\selenium\\selenium-support\\2.46.0\\selenium-support-2.46.0.jar | |
35 | +classPathUrl.28=C\:\\Users\\jin\\.m2\\repository\\org\\seleniumhq\\selenium\\selenium-ie-driver\\3.11.0\\selenium-ie-driver-3.11.0.jar | |
36 | +classPathUrl.27=C\:\\Users\\jin\\.m2\\repository\\org\\seleniumhq\\selenium\\selenium-safari-driver\\3.11.0\\selenium-safari-driver-3.11.0.jar | |
37 | +testFwJarVersion=6.14.2 | |
38 | +classPathUrl.26=C\:\\Users\\jin\\.m2\\repository\\org\\seleniumhq\\selenium\\selenium-chrome-driver\\3.11.0\\selenium-chrome-driver-3.11.0.jar | |
39 | +classPathUrl.25=C\:\\Users\\jin\\.m2\\repository\\org\\seleniumhq\\selenium\\selenium-firefox-driver\\3.11.0\\selenium-firefox-driver-3.11.0.jar | |
40 | +classPathUrl.24=C\:\\Users\\jin\\.m2\\repository\\com\\squareup\\okio\\okio\\1.13.0\\okio-1.13.0.jar | |
41 | +reportsDirectory=E\:\\work\\essa\\target\\surefire-reports | |
42 | +classPathUrl.23=C\:\\Users\\jin\\.m2\\repository\\com\\squareup\\okhttp3\\okhttp\\3.9.1\\okhttp-3.9.1.jar | |
43 | +classPathUrl.22=C\:\\Users\\jin\\.m2\\repository\\org\\apache\\httpcomponents\\httpcore\\4.4.6\\httpcore-4.4.6.jar | |
44 | +classPathUrl.21=C\:\\Users\\jin\\.m2\\repository\\org\\apache\\httpcomponents\\httpclient\\4.5.3\\httpclient-4.5.3.jar | |
45 | +classPathUrl.20=C\:\\Users\\jin\\.m2\\repository\\org\\codehaus\\mojo\\animal-sniffer-annotations\\1.14\\animal-sniffer-annotations-1.14.jar | |
46 | +failIfNoTests=false | |
47 | +useManifestOnlyJar=true | |
48 | +testng.test.classpath=E\:\\work\\essa\\target\\test-classes | |
49 | +dirscanner.0=directoryScannerOptions | |
50 | +classPathUrl.19=C\:\\Users\\jin\\.m2\\repository\\com\\google\\j2objc\\j2objc-annotations\\1.1\\j2objc-annotations-1.1.jar | |
51 | +classPathUrl.18=C\:\\Users\\jin\\.m2\\repository\\com\\google\\errorprone\\error_prone_annotations\\2.1.3\\error_prone_annotations-2.1.3.jar | |
52 | +classPathUrl.17=C\:\\Users\\jin\\.m2\\repository\\org\\checkerframework\\checker-compat-qual\\2.0.0\\checker-compat-qual-2.0.0.jar | |
53 | +classPathUrl.16=C\:\\Users\\jin\\.m2\\repository\\com\\google\\code\\findbugs\\jsr305\\1.3.9\\jsr305-1.3.9.jar | |
54 | +classPathUrl.15=C\:\\Users\\jin\\.m2\\repository\\com\\google\\guava\\guava\\23.6-jre\\guava-23.6-jre.jar | |
55 | +classPathUrl.14=C\:\\Users\\jin\\.m2\\repository\\com\\google\\code\\gson\\gson\\2.8.2\\gson-2.8.2.jar | |
56 | +classPathUrl.13=C\:\\Users\\jin\\.m2\\repository\\commons-logging\\commons-logging\\1.2\\commons-logging-1.2.jar | |
57 | +testSuiteXmlFiles0=E\:\\work\\essa\\suites\\testng.xml | |
58 | +classPathUrl.12=C\:\\Users\\jin\\.m2\\repository\\commons-codec\\commons-codec\\1.10\\commons-codec-1.10.jar | |
59 | +providerConfiguration=org.apache.maven.surefire.testng.TestNGProvider | |
60 | +classPathUrl.11=C\:\\Users\\jin\\.m2\\repository\\org\\apache\\commons\\commons-exec\\1.3\\commons-exec-1.3.jar | |
61 | +classPathUrl.10=C\:\\Users\\jin\\.m2\\repository\\net\\bytebuddy\\byte-buddy\\1.7.9\\byte-buddy-1.7.9.jar | |
62 | +useSystemClassLoader=true | ... | ... |
1 | +++ a/target/surefire/surefire7418267653302398198tmp | |
... | ... | @@ -0,0 +1,62 @@ |
1 | +#surefire | |
2 | +#Tue Apr 10 17:55:26 CST 2018 | |
3 | +enableAssertions=true | |
4 | +testSuiteDefinitionTestSourceDirectory=E\:\\work\\essa\\src\\test\\java | |
5 | +classPathUrl.39=C\:\\Users\\jin\\.m2\\repository\\commons-io\\commons-io\\1.3.2\\commons-io-1.3.2.jar | |
6 | +classPathUrl.38=C\:\\Users\\jin\\.m2\\repository\\stax\\stax-api\\1.0.1\\stax-api-1.0.1.jar | |
7 | +classPathUrl.37=C\:\\Users\\jin\\.m2\\repository\\org\\apache\\xmlbeans\\xmlbeans\\2.6.0\\xmlbeans-2.6.0.jar | |
8 | +classPathUrl.36=C\:\\Users\\jin\\.m2\\repository\\org\\apache\\poi\\poi-ooxml-schemas\\3.17\\poi-ooxml-schemas-3.17.jar | |
9 | +classPathUrl.35=C\:\\Users\\jin\\.m2\\repository\\com\\github\\virtuald\\curvesapi\\1.04\\curvesapi-1.04.jar | |
10 | +classPathUrl.34=C\:\\Users\\jin\\.m2\\repository\\org\\apache\\poi\\poi-ooxml\\3.17\\poi-ooxml-3.17.jar | |
11 | +surefireClassPathUrl.3=C\:\\Users\\jin\\.m2\\repository\\org\\apache\\maven\\surefire\\surefire-api\\2.7.1\\surefire-api-2.7.1.jar | |
12 | +classPathUrl.33=C\:\\Users\\jin\\.m2\\repository\\org\\apache\\poi\\poi\\3.17\\poi-3.17.jar | |
13 | +surefireClassPathUrl.2=C\:\\Users\\jin\\.m2\\repository\\org\\codehaus\\plexus\\plexus-utils\\1.0.4\\plexus-utils-1.0.4.jar | |
14 | +classPathUrl.32=C\:\\Users\\jin\\.m2\\repository\\org\\apache\\commons\\commons-collections4\\4.1\\commons-collections4-4.1.jar | |
15 | +surefireClassPathUrl.1=C\:\\Users\\jin\\.m2\\repository\\org\\apache\\maven\\maven-artifact\\2.0\\maven-artifact-2.0.jar | |
16 | +classPathUrl.31=C\:\\Users\\jin\\.m2\\repository\\javax\\activation\\activation\\1.1\\activation-1.1.jar | |
17 | +surefireClassPathUrl.0=C\:\\Users\\jin\\.m2\\repository\\org\\apache\\maven\\surefire\\surefire-testng\\2.7.1\\surefire-testng-2.7.1.jar | |
18 | +classPathUrl.30=C\:\\Users\\jin\\.m2\\repository\\javax\\mail\\mail\\1.4\\mail-1.4.jar | |
19 | +classPathUrl.9=C\:\\Users\\jin\\.m2\\repository\\org\\seleniumhq\\selenium\\selenium-remote-driver\\3.11.0\\selenium-remote-driver-3.11.0.jar | |
20 | +classPathUrl.8=C\:\\Users\\jin\\.m2\\repository\\org\\seleniumhq\\selenium\\selenium-opera-driver\\3.11.0\\selenium-opera-driver-3.11.0.jar | |
21 | +classPathUrl.7=C\:\\Users\\jin\\.m2\\repository\\org\\seleniumhq\\selenium\\selenium-edge-driver\\3.11.0\\selenium-edge-driver-3.11.0.jar | |
22 | +classPathUrl.6=C\:\\Users\\jin\\.m2\\repository\\org\\seleniumhq\\selenium\\selenium-api\\3.11.0\\selenium-api-3.11.0.jar | |
23 | +classPathUrl.5=C\:\\Users\\jin\\.m2\\repository\\org\\seleniumhq\\selenium\\selenium-java\\3.11.0\\selenium-java-3.11.0.jar | |
24 | +classPathUrl.4=C\:\\Users\\jin\\.m2\\repository\\org\\apache-extras\\beanshell\\bsh\\2.0b6\\bsh-2.0b6.jar | |
25 | +classPathUrl.3=C\:\\Users\\jin\\.m2\\repository\\com\\beust\\jcommander\\1.72\\jcommander-1.72.jar | |
26 | +classPathUrl.2=C\:\\Users\\jin\\.m2\\repository\\org\\testng\\testng\\6.14.2\\testng-6.14.2.jar | |
27 | +classPathUrl.1=E\:\\work\\essa\\target\\classes | |
28 | +report.2=org.apache.maven.surefire.report.XMLReporter | |
29 | +classPathUrl.0=E\:\\work\\essa\\target\\test-classes | |
30 | +report.1=org.apache.maven.surefire.report.BriefFileReporter | |
31 | +childDelegation=false | |
32 | +report.0=org.apache.maven.surefire.report.ForkingConsoleReporter | |
33 | +isTrimStackTrace=true | |
34 | +classPathUrl.29=C\:\\Users\\jin\\.m2\\repository\\org\\seleniumhq\\selenium\\selenium-support\\2.46.0\\selenium-support-2.46.0.jar | |
35 | +classPathUrl.28=C\:\\Users\\jin\\.m2\\repository\\org\\seleniumhq\\selenium\\selenium-ie-driver\\3.11.0\\selenium-ie-driver-3.11.0.jar | |
36 | +classPathUrl.27=C\:\\Users\\jin\\.m2\\repository\\org\\seleniumhq\\selenium\\selenium-safari-driver\\3.11.0\\selenium-safari-driver-3.11.0.jar | |
37 | +testFwJarVersion=6.14.2 | |
38 | +classPathUrl.26=C\:\\Users\\jin\\.m2\\repository\\org\\seleniumhq\\selenium\\selenium-chrome-driver\\3.11.0\\selenium-chrome-driver-3.11.0.jar | |
39 | +classPathUrl.25=C\:\\Users\\jin\\.m2\\repository\\org\\seleniumhq\\selenium\\selenium-firefox-driver\\3.11.0\\selenium-firefox-driver-3.11.0.jar | |
40 | +classPathUrl.24=C\:\\Users\\jin\\.m2\\repository\\com\\squareup\\okio\\okio\\1.13.0\\okio-1.13.0.jar | |
41 | +reportsDirectory=E\:\\work\\essa\\target\\surefire-reports | |
42 | +classPathUrl.23=C\:\\Users\\jin\\.m2\\repository\\com\\squareup\\okhttp3\\okhttp\\3.9.1\\okhttp-3.9.1.jar | |
43 | +classPathUrl.22=C\:\\Users\\jin\\.m2\\repository\\org\\apache\\httpcomponents\\httpcore\\4.4.6\\httpcore-4.4.6.jar | |
44 | +classPathUrl.21=C\:\\Users\\jin\\.m2\\repository\\org\\apache\\httpcomponents\\httpclient\\4.5.3\\httpclient-4.5.3.jar | |
45 | +classPathUrl.20=C\:\\Users\\jin\\.m2\\repository\\org\\codehaus\\mojo\\animal-sniffer-annotations\\1.14\\animal-sniffer-annotations-1.14.jar | |
46 | +failIfNoTests=false | |
47 | +useManifestOnlyJar=true | |
48 | +testng.test.classpath=E\:\\work\\essa\\target\\test-classes | |
49 | +dirscanner.0=directoryScannerOptions | |
50 | +classPathUrl.19=C\:\\Users\\jin\\.m2\\repository\\com\\google\\j2objc\\j2objc-annotations\\1.1\\j2objc-annotations-1.1.jar | |
51 | +classPathUrl.18=C\:\\Users\\jin\\.m2\\repository\\com\\google\\errorprone\\error_prone_annotations\\2.1.3\\error_prone_annotations-2.1.3.jar | |
52 | +classPathUrl.17=C\:\\Users\\jin\\.m2\\repository\\org\\checkerframework\\checker-compat-qual\\2.0.0\\checker-compat-qual-2.0.0.jar | |
53 | +classPathUrl.16=C\:\\Users\\jin\\.m2\\repository\\com\\google\\code\\findbugs\\jsr305\\1.3.9\\jsr305-1.3.9.jar | |
54 | +classPathUrl.15=C\:\\Users\\jin\\.m2\\repository\\com\\google\\guava\\guava\\23.6-jre\\guava-23.6-jre.jar | |
55 | +classPathUrl.14=C\:\\Users\\jin\\.m2\\repository\\com\\google\\code\\gson\\gson\\2.8.2\\gson-2.8.2.jar | |
56 | +classPathUrl.13=C\:\\Users\\jin\\.m2\\repository\\commons-logging\\commons-logging\\1.2\\commons-logging-1.2.jar | |
57 | +testSuiteXmlFiles0=E\:\\work\\essa\\suites\\testng.xml | |
58 | +classPathUrl.12=C\:\\Users\\jin\\.m2\\repository\\commons-codec\\commons-codec\\1.10\\commons-codec-1.10.jar | |
59 | +providerConfiguration=org.apache.maven.surefire.testng.TestNGProvider | |
60 | +classPathUrl.11=C\:\\Users\\jin\\.m2\\repository\\org\\apache\\commons\\commons-exec\\1.3\\commons-exec-1.3.jar | |
61 | +classPathUrl.10=C\:\\Users\\jin\\.m2\\repository\\net\\bytebuddy\\byte-buddy\\1.7.9\\byte-buddy-1.7.9.jar | |
62 | +useSystemClassLoader=true | ... | ... |
1 | +++ a/target/surefire/surefire8275028450064723919tmp | |
... | ... | @@ -0,0 +1,62 @@ |
1 | +#surefire | |
2 | +#Tue Apr 10 18:21:11 CST 2018 | |
3 | +enableAssertions=true | |
4 | +testSuiteDefinitionTestSourceDirectory=E\:\\work\\essa\\src\\test\\java | |
5 | +classPathUrl.39=C\:\\Users\\jin\\.m2\\repository\\commons-io\\commons-io\\1.3.2\\commons-io-1.3.2.jar | |
6 | +classPathUrl.38=C\:\\Users\\jin\\.m2\\repository\\stax\\stax-api\\1.0.1\\stax-api-1.0.1.jar | |
7 | +classPathUrl.37=C\:\\Users\\jin\\.m2\\repository\\org\\apache\\xmlbeans\\xmlbeans\\2.6.0\\xmlbeans-2.6.0.jar | |
8 | +classPathUrl.36=C\:\\Users\\jin\\.m2\\repository\\org\\apache\\poi\\poi-ooxml-schemas\\3.17\\poi-ooxml-schemas-3.17.jar | |
9 | +classPathUrl.35=C\:\\Users\\jin\\.m2\\repository\\com\\github\\virtuald\\curvesapi\\1.04\\curvesapi-1.04.jar | |
10 | +classPathUrl.34=C\:\\Users\\jin\\.m2\\repository\\org\\apache\\poi\\poi-ooxml\\3.17\\poi-ooxml-3.17.jar | |
11 | +surefireClassPathUrl.3=C\:\\Users\\jin\\.m2\\repository\\org\\apache\\maven\\surefire\\surefire-api\\2.7.1\\surefire-api-2.7.1.jar | |
12 | +classPathUrl.33=C\:\\Users\\jin\\.m2\\repository\\org\\apache\\poi\\poi\\3.17\\poi-3.17.jar | |
13 | +surefireClassPathUrl.2=C\:\\Users\\jin\\.m2\\repository\\org\\codehaus\\plexus\\plexus-utils\\1.0.4\\plexus-utils-1.0.4.jar | |
14 | +classPathUrl.32=C\:\\Users\\jin\\.m2\\repository\\org\\apache\\commons\\commons-collections4\\4.1\\commons-collections4-4.1.jar | |
15 | +surefireClassPathUrl.1=C\:\\Users\\jin\\.m2\\repository\\org\\apache\\maven\\maven-artifact\\2.0\\maven-artifact-2.0.jar | |
16 | +classPathUrl.31=C\:\\Users\\jin\\.m2\\repository\\javax\\activation\\activation\\1.1\\activation-1.1.jar | |
17 | +surefireClassPathUrl.0=C\:\\Users\\jin\\.m2\\repository\\org\\apache\\maven\\surefire\\surefire-testng\\2.7.1\\surefire-testng-2.7.1.jar | |
18 | +classPathUrl.30=C\:\\Users\\jin\\.m2\\repository\\javax\\mail\\mail\\1.4\\mail-1.4.jar | |
19 | +classPathUrl.9=C\:\\Users\\jin\\.m2\\repository\\org\\seleniumhq\\selenium\\selenium-remote-driver\\3.11.0\\selenium-remote-driver-3.11.0.jar | |
20 | +classPathUrl.8=C\:\\Users\\jin\\.m2\\repository\\org\\seleniumhq\\selenium\\selenium-opera-driver\\3.11.0\\selenium-opera-driver-3.11.0.jar | |
21 | +classPathUrl.7=C\:\\Users\\jin\\.m2\\repository\\org\\seleniumhq\\selenium\\selenium-edge-driver\\3.11.0\\selenium-edge-driver-3.11.0.jar | |
22 | +classPathUrl.6=C\:\\Users\\jin\\.m2\\repository\\org\\seleniumhq\\selenium\\selenium-api\\3.11.0\\selenium-api-3.11.0.jar | |
23 | +classPathUrl.5=C\:\\Users\\jin\\.m2\\repository\\org\\seleniumhq\\selenium\\selenium-java\\3.11.0\\selenium-java-3.11.0.jar | |
24 | +classPathUrl.4=C\:\\Users\\jin\\.m2\\repository\\org\\apache-extras\\beanshell\\bsh\\2.0b6\\bsh-2.0b6.jar | |
25 | +classPathUrl.3=C\:\\Users\\jin\\.m2\\repository\\com\\beust\\jcommander\\1.72\\jcommander-1.72.jar | |
26 | +classPathUrl.2=C\:\\Users\\jin\\.m2\\repository\\org\\testng\\testng\\6.14.2\\testng-6.14.2.jar | |
27 | +classPathUrl.1=E\:\\work\\essa\\target\\classes | |
28 | +report.2=org.apache.maven.surefire.report.XMLReporter | |
29 | +classPathUrl.0=E\:\\work\\essa\\target\\test-classes | |
30 | +report.1=org.apache.maven.surefire.report.BriefFileReporter | |
31 | +childDelegation=false | |
32 | +report.0=org.apache.maven.surefire.report.ForkingConsoleReporter | |
33 | +isTrimStackTrace=true | |
34 | +classPathUrl.29=C\:\\Users\\jin\\.m2\\repository\\org\\seleniumhq\\selenium\\selenium-support\\2.46.0\\selenium-support-2.46.0.jar | |
35 | +classPathUrl.28=C\:\\Users\\jin\\.m2\\repository\\org\\seleniumhq\\selenium\\selenium-ie-driver\\3.11.0\\selenium-ie-driver-3.11.0.jar | |
36 | +classPathUrl.27=C\:\\Users\\jin\\.m2\\repository\\org\\seleniumhq\\selenium\\selenium-safari-driver\\3.11.0\\selenium-safari-driver-3.11.0.jar | |
37 | +testFwJarVersion=6.14.2 | |
38 | +classPathUrl.26=C\:\\Users\\jin\\.m2\\repository\\org\\seleniumhq\\selenium\\selenium-chrome-driver\\3.11.0\\selenium-chrome-driver-3.11.0.jar | |
39 | +classPathUrl.25=C\:\\Users\\jin\\.m2\\repository\\org\\seleniumhq\\selenium\\selenium-firefox-driver\\3.11.0\\selenium-firefox-driver-3.11.0.jar | |
40 | +classPathUrl.24=C\:\\Users\\jin\\.m2\\repository\\com\\squareup\\okio\\okio\\1.13.0\\okio-1.13.0.jar | |
41 | +reportsDirectory=E\:\\work\\essa\\target\\surefire-reports | |
42 | +classPathUrl.23=C\:\\Users\\jin\\.m2\\repository\\com\\squareup\\okhttp3\\okhttp\\3.9.1\\okhttp-3.9.1.jar | |
43 | +classPathUrl.22=C\:\\Users\\jin\\.m2\\repository\\org\\apache\\httpcomponents\\httpcore\\4.4.6\\httpcore-4.4.6.jar | |
44 | +classPathUrl.21=C\:\\Users\\jin\\.m2\\repository\\org\\apache\\httpcomponents\\httpclient\\4.5.3\\httpclient-4.5.3.jar | |
45 | +classPathUrl.20=C\:\\Users\\jin\\.m2\\repository\\org\\codehaus\\mojo\\animal-sniffer-annotations\\1.14\\animal-sniffer-annotations-1.14.jar | |
46 | +failIfNoTests=false | |
47 | +useManifestOnlyJar=true | |
48 | +testng.test.classpath=E\:\\work\\essa\\target\\test-classes | |
49 | +dirscanner.0=directoryScannerOptions | |
50 | +classPathUrl.19=C\:\\Users\\jin\\.m2\\repository\\com\\google\\j2objc\\j2objc-annotations\\1.1\\j2objc-annotations-1.1.jar | |
51 | +classPathUrl.18=C\:\\Users\\jin\\.m2\\repository\\com\\google\\errorprone\\error_prone_annotations\\2.1.3\\error_prone_annotations-2.1.3.jar | |
52 | +classPathUrl.17=C\:\\Users\\jin\\.m2\\repository\\org\\checkerframework\\checker-compat-qual\\2.0.0\\checker-compat-qual-2.0.0.jar | |
53 | +classPathUrl.16=C\:\\Users\\jin\\.m2\\repository\\com\\google\\code\\findbugs\\jsr305\\1.3.9\\jsr305-1.3.9.jar | |
54 | +classPathUrl.15=C\:\\Users\\jin\\.m2\\repository\\com\\google\\guava\\guava\\23.6-jre\\guava-23.6-jre.jar | |
55 | +classPathUrl.14=C\:\\Users\\jin\\.m2\\repository\\com\\google\\code\\gson\\gson\\2.8.2\\gson-2.8.2.jar | |
56 | +classPathUrl.13=C\:\\Users\\jin\\.m2\\repository\\commons-logging\\commons-logging\\1.2\\commons-logging-1.2.jar | |
57 | +testSuiteXmlFiles0=E\:\\work\\essa\\suites\\testng.xml | |
58 | +classPathUrl.12=C\:\\Users\\jin\\.m2\\repository\\commons-codec\\commons-codec\\1.10\\commons-codec-1.10.jar | |
59 | +providerConfiguration=org.apache.maven.surefire.testng.TestNGProvider | |
60 | +classPathUrl.11=C\:\\Users\\jin\\.m2\\repository\\org\\apache\\commons\\commons-exec\\1.3\\commons-exec-1.3.jar | |
61 | +classPathUrl.10=C\:\\Users\\jin\\.m2\\repository\\net\\bytebuddy\\byte-buddy\\1.7.9\\byte-buddy-1.7.9.jar | |
62 | +useSystemClassLoader=true | ... | ... |
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
target/test-classes/com/essa/pageObject/SupplierOperationsTrackPage.class
0 → 100644
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
1 | +++ a/test-output/bpms自动化测试/login.html | |
... | ... | @@ -0,0 +1,89 @@ |
1 | +<html> | |
2 | +<head> | |
3 | +<title>TestNG: login</title> | |
4 | +<link href="../testng.css" rel="stylesheet" type="text/css" /> | |
5 | +<link href="../my-testng.css" rel="stylesheet" type="text/css" /> | |
6 | + | |
7 | +<style type="text/css"> | |
8 | +.log { display: none;} | |
9 | +.stack-trace { display: none;} | |
10 | +</style> | |
11 | +<script type="text/javascript"> | |
12 | +<!-- | |
13 | +function flip(e) { | |
14 | + current = e.style.display; | |
15 | + if (current == 'block') { | |
16 | + e.style.display = 'none'; | |
17 | + return 0; | |
18 | + } | |
19 | + else { | |
20 | + e.style.display = 'block'; | |
21 | + return 1; | |
22 | + } | |
23 | +} | |
24 | + | |
25 | +function toggleBox(szDivId, elem, msg1, msg2) | |
26 | +{ | |
27 | + var res = -1; if (document.getElementById) { | |
28 | + res = flip(document.getElementById(szDivId)); | |
29 | + } | |
30 | + else if (document.all) { | |
31 | + // this is the way old msie versions work | |
32 | + res = flip(document.all[szDivId]); | |
33 | + } | |
34 | + if(elem) { | |
35 | + if(res == 0) elem.innerHTML = msg1; else elem.innerHTML = msg2; | |
36 | + } | |
37 | + | |
38 | +} | |
39 | + | |
40 | +function toggleAllBoxes() { | |
41 | + if (document.getElementsByTagName) { | |
42 | + d = document.getElementsByTagName('div'); | |
43 | + for (i = 0; i < d.length; i++) { | |
44 | + if (d[i].className == 'log') { | |
45 | + flip(d[i]); | |
46 | + } | |
47 | + } | |
48 | + } | |
49 | +} | |
50 | + | |
51 | +// --> | |
52 | +</script> | |
53 | + | |
54 | +</head> | |
55 | +<body> | |
56 | +<h2 align='center'>login</h2><table border='1' align="center"> | |
57 | +<tr> | |
58 | +<td>Tests passed/Failed/Skipped:</td><td>2/0/0</td> | |
59 | +</tr><tr> | |
60 | +<td>Started on:</td><td>Tue Apr 10 18:26:41 CST 2018</td> | |
61 | +</tr> | |
62 | +<tr><td>Total time:</td><td>35 seconds (35821 ms)</td> | |
63 | +</tr><tr> | |
64 | +<td>Included groups:</td><td></td> | |
65 | +</tr><tr> | |
66 | +<td>Excluded groups:</td><td></td> | |
67 | +</tr> | |
68 | +</table><p/> | |
69 | +<small><i>(Hover the method name to see the test class name)</i></small><p/> | |
70 | +<table width='100%' border='1' class='invocation-passed'> | |
71 | +<tr><td colspan='4' align='center'><b>PASSED TESTS</b></td></tr> | |
72 | +<tr><td><b>Test method</b></td> | |
73 | +<td width="30%"><b>Exception</b></td> | |
74 | +<td width="10%"><b>Time (seconds)</b></td> | |
75 | +<td><b>Instance</b></td> | |
76 | +</tr> | |
77 | +<tr> | |
78 | +<td title='com.essa.testSuite.Test_Login.login()'><b>login</b><br>Test class: com.essa.testSuite.Test_Login<br>Parameters: admin, essa123</td> | |
79 | +<td></td> | |
80 | +<td>9</td> | |
81 | +<td>com.essa.testSuite.Test_Login@83b407</td></tr> | |
82 | +<tr> | |
83 | +<td title='com.essa.testSuite.Test_Login.login()'><b>login</b><br>Test class: com.essa.testSuite.Test_Login<br>Parameters: linrong, essa123</td> | |
84 | +<td></td> | |
85 | +<td>9</td> | |
86 | +<td>com.essa.testSuite.Test_Login@83b407</td></tr> | |
87 | +</table><p> | |
88 | +</body> | |
89 | +</html> | |
0 | 90 | \ No newline at end of file | ... | ... |
1 | +++ a/test-output/bpms自动化测试/login.xml | |
... | ... | @@ -0,0 +1,6 @@ |
1 | +<?xml version="1.0" encoding="UTF-8"?> | |
2 | +<!-- Generated by org.testng.reporters.JUnitXMLReporter --> | |
3 | +<testsuite hostname="DESKTOP-NIGE62D" ignored="0" name="login" tests="2" failures="0" timestamp="10 四月 2018 10:27:17 GMT" time="35.821" errors="0"> | |
4 | + <testcase name="login" time="9.69" classname="com.essa.testSuite.Test_Login"/> | |
5 | + <testcase name="login" time="9.11" classname="com.essa.testSuite.Test_Login"/> | |
6 | +</testsuite> <!-- login --> | ... | ... |
1 | +++ a/test-output/bpms自动化测试报告/login.html | |
... | ... | @@ -0,0 +1,89 @@ |
1 | +<html> | |
2 | +<head> | |
3 | +<title>TestNG: login</title> | |
4 | +<link href="../testng.css" rel="stylesheet" type="text/css" /> | |
5 | +<link href="../my-testng.css" rel="stylesheet" type="text/css" /> | |
6 | + | |
7 | +<style type="text/css"> | |
8 | +.log { display: none;} | |
9 | +.stack-trace { display: none;} | |
10 | +</style> | |
11 | +<script type="text/javascript"> | |
12 | +<!-- | |
13 | +function flip(e) { | |
14 | + current = e.style.display; | |
15 | + if (current == 'block') { | |
16 | + e.style.display = 'none'; | |
17 | + return 0; | |
18 | + } | |
19 | + else { | |
20 | + e.style.display = 'block'; | |
21 | + return 1; | |
22 | + } | |
23 | +} | |
24 | + | |
25 | +function toggleBox(szDivId, elem, msg1, msg2) | |
26 | +{ | |
27 | + var res = -1; if (document.getElementById) { | |
28 | + res = flip(document.getElementById(szDivId)); | |
29 | + } | |
30 | + else if (document.all) { | |
31 | + // this is the way old msie versions work | |
32 | + res = flip(document.all[szDivId]); | |
33 | + } | |
34 | + if(elem) { | |
35 | + if(res == 0) elem.innerHTML = msg1; else elem.innerHTML = msg2; | |
36 | + } | |
37 | + | |
38 | +} | |
39 | + | |
40 | +function toggleAllBoxes() { | |
41 | + if (document.getElementsByTagName) { | |
42 | + d = document.getElementsByTagName('div'); | |
43 | + for (i = 0; i < d.length; i++) { | |
44 | + if (d[i].className == 'log') { | |
45 | + flip(d[i]); | |
46 | + } | |
47 | + } | |
48 | + } | |
49 | +} | |
50 | + | |
51 | +// --> | |
52 | +</script> | |
53 | + | |
54 | +</head> | |
55 | +<body> | |
56 | +<h2 align='center'>login</h2><table border='1' align="center"> | |
57 | +<tr> | |
58 | +<td>Tests passed/Failed/Skipped:</td><td>2/0/0</td> | |
59 | +</tr><tr> | |
60 | +<td>Started on:</td><td>Tue Apr 10 16:15:46 CST 2018</td> | |
61 | +</tr> | |
62 | +<tr><td>Total time:</td><td>21 seconds (21610 ms)</td> | |
63 | +</tr><tr> | |
64 | +<td>Included groups:</td><td></td> | |
65 | +</tr><tr> | |
66 | +<td>Excluded groups:</td><td></td> | |
67 | +</tr> | |
68 | +</table><p/> | |
69 | +<small><i>(Hover the method name to see the test class name)</i></small><p/> | |
70 | +<table width='100%' border='1' class='invocation-passed'> | |
71 | +<tr><td colspan='4' align='center'><b>PASSED TESTS</b></td></tr> | |
72 | +<tr><td><b>Test method</b></td> | |
73 | +<td width="30%"><b>Exception</b></td> | |
74 | +<td width="10%"><b>Time (seconds)</b></td> | |
75 | +<td><b>Instance</b></td> | |
76 | +</tr> | |
77 | +<tr> | |
78 | +<td title='com.essa.testSuite.Test_Login.login()'><b>login</b><br>Test class: com.essa.testSuite.Test_Login<br>Parameters: admin, essa123</td> | |
79 | +<td></td> | |
80 | +<td>5</td> | |
81 | +<td>com.essa.testSuite.Test_Login@17cd7a0</td></tr> | |
82 | +<tr> | |
83 | +<td title='com.essa.testSuite.Test_Login.login()'><b>login</b><br>Test class: com.essa.testSuite.Test_Login<br>Parameters: linrong, essa123</td> | |
84 | +<td></td> | |
85 | +<td>4</td> | |
86 | +<td>com.essa.testSuite.Test_Login@17cd7a0</td></tr> | |
87 | +</table><p> | |
88 | +</body> | |
89 | +</html> | |
0 | 90 | \ No newline at end of file | ... | ... |
1 | +++ a/test-output/bpms自动化测试报告/login.xml | |
... | ... | @@ -0,0 +1,6 @@ |
1 | +<?xml version="1.0" encoding="UTF-8"?> | |
2 | +<!-- Generated by org.testng.reporters.JUnitXMLReporter --> | |
3 | +<testsuite hostname="DESKTOP-NIGE62D" ignored="0" name="login" tests="2" failures="0" timestamp="10 四月 2018 08:16:08 GMT" time="21.61" errors="0"> | |
4 | + <testcase name="login" time="5.471" classname="com.essa.testSuite.Test_Login"/> | |
5 | + <testcase name="login" time="4.885" classname="com.essa.testSuite.Test_Login"/> | |
6 | +</testsuite> <!-- login --> | ... | ... |
1 | +++ a/test-output/bpms自动化测试报告/登录.html | |
... | ... | @@ -0,0 +1,89 @@ |
1 | +<html> | |
2 | +<head> | |
3 | +<title>TestNG: 怬</title> | |
4 | +<link href="../testng.css" rel="stylesheet" type="text/css" /> | |
5 | +<link href="../my-testng.css" rel="stylesheet" type="text/css" /> | |
6 | + | |
7 | +<style type="text/css"> | |
8 | +.log { display: none;} | |
9 | +.stack-trace { display: none;} | |
10 | +</style> | |
11 | +<script type="text/javascript"> | |
12 | +<!-- | |
13 | +function flip(e) { | |
14 | + current = e.style.display; | |
15 | + if (current == 'block') { | |
16 | + e.style.display = 'none'; | |
17 | + return 0; | |
18 | + } | |
19 | + else { | |
20 | + e.style.display = 'block'; | |
21 | + return 1; | |
22 | + } | |
23 | +} | |
24 | + | |
25 | +function toggleBox(szDivId, elem, msg1, msg2) | |
26 | +{ | |
27 | + var res = -1; if (document.getElementById) { | |
28 | + res = flip(document.getElementById(szDivId)); | |
29 | + } | |
30 | + else if (document.all) { | |
31 | + // this is the way old msie versions work | |
32 | + res = flip(document.all[szDivId]); | |
33 | + } | |
34 | + if(elem) { | |
35 | + if(res == 0) elem.innerHTML = msg1; else elem.innerHTML = msg2; | |
36 | + } | |
37 | + | |
38 | +} | |
39 | + | |
40 | +function toggleAllBoxes() { | |
41 | + if (document.getElementsByTagName) { | |
42 | + d = document.getElementsByTagName('div'); | |
43 | + for (i = 0; i < d.length; i++) { | |
44 | + if (d[i].className == 'log') { | |
45 | + flip(d[i]); | |
46 | + } | |
47 | + } | |
48 | + } | |
49 | +} | |
50 | + | |
51 | +// --> | |
52 | +</script> | |
53 | + | |
54 | +</head> | |
55 | +<body> | |
56 | +<h2 align='center'>怬</h2><table border='1' align="center"> | |
57 | +<tr> | |
58 | +<td>Tests passed/Failed/Skipped:</td><td>2/0/0</td> | |
59 | +</tr><tr> | |
60 | +<td>Started on:</td><td>Tue Apr 10 15:42:54 CST 2018</td> | |
61 | +</tr> | |
62 | +<tr><td>Total time:</td><td>23 seconds (23496 ms)</td> | |
63 | +</tr><tr> | |
64 | +<td>Included groups:</td><td></td> | |
65 | +</tr><tr> | |
66 | +<td>Excluded groups:</td><td></td> | |
67 | +</tr> | |
68 | +</table><p/> | |
69 | +<small><i>(Hover the method name to see the test class name)</i></small><p/> | |
70 | +<table width='100%' border='1' class='invocation-passed'> | |
71 | +<tr><td colspan='4' align='center'><b>PASSED TESTS</b></td></tr> | |
72 | +<tr><td><b>Test method</b></td> | |
73 | +<td width="30%"><b>Exception</b></td> | |
74 | +<td width="10%"><b>Time (seconds)</b></td> | |
75 | +<td><b>Instance</b></td> | |
76 | +</tr> | |
77 | +<tr> | |
78 | +<td title='com.essa.testSuite.Test_Login.login()'><b>login</b><br>Test class: com.essa.testSuite.Test_Login<br>Parameters: admin, essa123</td> | |
79 | +<td></td> | |
80 | +<td>6</td> | |
81 | +<td>com.essa.testSuite.Test_Login@1205a84</td></tr> | |
82 | +<tr> | |
83 | +<td title='com.essa.testSuite.Test_Login.login()'><b>login</b><br>Test class: com.essa.testSuite.Test_Login<br>Parameters: linrong, essa123</td> | |
84 | +<td></td> | |
85 | +<td>5</td> | |
86 | +<td>com.essa.testSuite.Test_Login@1205a84</td></tr> | |
87 | +</table><p> | |
88 | +</body> | |
89 | +</html> | |
0 | 90 | \ No newline at end of file | ... | ... |
1 | +++ a/test-output/bpms自动化测试报告/登录.xml | |
... | ... | @@ -0,0 +1,6 @@ |
1 | +<?xml version="1.0" encoding="UTF-8"?> | |
2 | +<!-- Generated by org.testng.reporters.JUnitXMLReporter --> | |
3 | +<testsuite hostname="DESKTOP-NIGE62D" ignored="0" name="登录" tests="2" failures="0" timestamp="10 四月 2018 07:43:17 GMT" time="23.496" errors="0"> | |
4 | + <testcase name="login" time="6.123" classname="com.essa.testSuite.Test_Login"/> | |
5 | + <testcase name="login" time="5.663" classname="com.essa.testSuite.Test_Login"/> | |
6 | +</testsuite> <!-- 登录 --> | ... | ... |
356 Bytes
157 Bytes
1 | +++ a/test-output/emailable-report.html | |
... | ... | @@ -0,0 +1,19 @@ |
1 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | |
2 | +<html xmlns="http://www.w3.org/1999/xhtml"> | |
3 | +<head> | |
4 | +<meta http-equiv="content-type" content="text/html; charset=UTF-8"/> | |
5 | +<title>TestNG Report</title> | |
6 | +<style type="text/css">table {margin-bottom:10px;border-collapse:collapse;empty-cells:show}th,td {border:1px solid #009;padding:.25em .5em}th {vertical-align:bottom}td {vertical-align:top}table a {font-weight:bold}.stripe td {background-color: #E6EBF9}.num {text-align:right}.passedodd td {background-color: #3F3}.passedeven td {background-color: #0A0}.skippedodd td {background-color: #DDD}.skippedeven td {background-color: #CCC}.failedodd td,.attn {background-color: #F33}.failedeven td,.stripe .attn {background-color: #D00}.stacktrace {white-space:pre;font-family:monospace}.totop {font-size:85%;text-align:center;border-bottom:2px solid #000}.invisible {display:none}</style> | |
7 | +</head> | |
8 | +<body> | |
9 | +<table> | |
10 | +<tr><th>Test</th><th># Passed</th><th># Skipped</th><th># Failed</th><th>Time (ms)</th><th>Included Groups</th><th>Excluded Groups</th></tr> | |
11 | +<tr><th colspan="7">bpms自动化测试</th></tr> | |
12 | +<tr><td><a href="#t0">login</a></td><td class="num">2</td><td class="num">0</td><td class="num">0</td><td class="num">35,821</td><td></td><td></td></tr> | |
13 | +</table> | |
14 | +<table id='summary'><thead><tr><th>Class</th><th>Method</th><th>Start</th><th>Time (ms)</th></tr></thead><tbody><tr><th colspan="4">bpms自动化测试</th></tr></tbody><tbody id="t0"><tr><th colspan="4">login — passed</th></tr><tr class="passedeven"><td rowspan="2">com.essa.testSuite.Test_Login</td><td><a href="#m0">login</a></td><td rowspan="2">1523356016389</td><td rowspan="2">9690</td></tr><tr class="passedeven"><td><a href="#m1">login</a></td></tr></tbody> | |
15 | +</table> | |
16 | +<h2>login</h2><h3 id="m0">com.essa.testSuite.Test_Login#login</h3><table class="result"><tr class="param"><th>Parameter #1</th><th>Parameter #2</th></tr><tr class="param stripe"><td>admin</td><td>essa123</td></tr></table><p class="totop"><a href="#summary">back to summary</a></p> | |
17 | +<h3 id="m1">com.essa.testSuite.Test_Login#login</h3><table class="result"><tr class="param"><th>Parameter #1</th><th>Parameter #2</th></tr><tr class="param stripe"><td>linrong</td><td>essa123</td></tr></table><p class="totop"><a href="#summary">back to summary</a></p> | |
18 | +</body> | |
19 | +</html> | ... | ... |
977 Bytes
1 | +++ a/test-output/index.html | |
... | ... | @@ -0,0 +1,265 @@ |
1 | +<!DOCTYPE html> | |
2 | + | |
3 | +<html> | |
4 | + <head> | |
5 | + <meta charset='utf-8'> | |
6 | + <title>TestNG reports</title> | |
7 | + | |
8 | + <link type="text/css" href="testng-reports.css" rel="stylesheet" /> | |
9 | + <script type="text/javascript" src="jquery-1.7.1.min.js"></script> | |
10 | + <script type="text/javascript" src="testng-reports.js"></script> | |
11 | + <script type="text/javascript" src="https://www.google.com/jsapi"></script> | |
12 | + <script type='text/javascript'> | |
13 | + google.load('visualization', '1', {packages:['table']}); | |
14 | + google.setOnLoadCallback(drawTable); | |
15 | + var suiteTableInitFunctions = new Array(); | |
16 | + var suiteTableData = new Array(); | |
17 | + </script> | |
18 | + <!-- | |
19 | + <script type="text/javascript" src="jquery-ui/js/jquery-ui-1.8.16.custom.min.js"></script> | |
20 | + --> | |
21 | + </head> | |
22 | + | |
23 | + <body> | |
24 | + <div class="top-banner-root"> | |
25 | + <span class="top-banner-title-font">Test results</span> | |
26 | + <br/> | |
27 | + <span class="top-banner-font-1">1 suite</span> | |
28 | + </div> <!-- top-banner-root --> | |
29 | + <div class="navigator-root"> | |
30 | + <div class="navigator-suite-header"> | |
31 | + <span>All suites</span> | |
32 | + <a href="#" class="collapse-all-link" title="Collapse/expand all the suites"> | |
33 | + <img class="collapse-all-icon" src="collapseall.gif"> | |
34 | + </img> <!-- collapse-all-icon --> | |
35 | + </a> <!-- collapse-all-link --> | |
36 | + </div> <!-- navigator-suite-header --> | |
37 | + <div class="suite"> | |
38 | + <div class="rounded-window"> | |
39 | + <div class="suite-header light-rounded-window-top"> | |
40 | + <a href="#" class="navigator-link" panel-name="suite-bpms自动化测试"> | |
41 | + <span class="suite-name border-passed">bpms自动化测试</span> | |
42 | + </a> <!-- navigator-link --> | |
43 | + </div> <!-- suite-header light-rounded-window-top --> | |
44 | + <div class="navigator-suite-content"> | |
45 | + <div class="suite-section-title"> | |
46 | + <span>Info</span> | |
47 | + </div> <!-- suite-section-title --> | |
48 | + <div class="suite-section-content"> | |
49 | + <ul> | |
50 | + <li> | |
51 | + <a href="#" class="navigator-link " panel-name="test-xml-bpms自动化测试"> | |
52 | + <span>E:\work\essa\suites\testng.xml</span> | |
53 | + </a> <!-- navigator-link --> | |
54 | + </li> | |
55 | + <li> | |
56 | + <a href="#" class="navigator-link " panel-name="testlist-bpms自动化测试"> | |
57 | + <span class="test-stats">1 test</span> | |
58 | + </a> <!-- navigator-link --> | |
59 | + </li> | |
60 | + <li> | |
61 | + <a href="#" class="navigator-link " panel-name="group-bpms自动化测试"> | |
62 | + <span>0 groups</span> | |
63 | + </a> <!-- navigator-link --> | |
64 | + </li> | |
65 | + <li> | |
66 | + <a href="#" class="navigator-link " panel-name="times-bpms自动化测试"> | |
67 | + <span>Times</span> | |
68 | + </a> <!-- navigator-link --> | |
69 | + </li> | |
70 | + <li> | |
71 | + <a href="#" class="navigator-link " panel-name="reporter-bpms自动化测试"> | |
72 | + <span>Reporter output</span> | |
73 | + </a> <!-- navigator-link --> | |
74 | + </li> | |
75 | + <li> | |
76 | + <a href="#" class="navigator-link " panel-name="ignored-methods-bpms自动化测试"> | |
77 | + <span>Ignored methods</span> | |
78 | + </a> <!-- navigator-link --> | |
79 | + </li> | |
80 | + <li> | |
81 | + <a href="#" class="navigator-link " panel-name="chronological-bpms自动化测试"> | |
82 | + <span>Chronological view</span> | |
83 | + </a> <!-- navigator-link --> | |
84 | + </li> | |
85 | + </ul> | |
86 | + </div> <!-- suite-section-content --> | |
87 | + <div class="result-section"> | |
88 | + <div class="suite-section-title"> | |
89 | + <span>Results</span> | |
90 | + </div> <!-- suite-section-title --> | |
91 | + <div class="suite-section-content"> | |
92 | + <ul> | |
93 | + <li> | |
94 | + <span class="method-stats">2 methods, 2 passed</span> | |
95 | + </li> | |
96 | + <li> | |
97 | + <span class="method-list-title passed">Passed methods</span> | |
98 | + <span class="show-or-hide-methods passed"> | |
99 | + <a href="#" panel-name="suite-bpms自动化测试" class="hide-methods passed suite-bpms自动化测试"> (hide)</a> <!-- hide-methods passed suite-bpms自动化测试 --> | |
100 | + <a href="#" panel-name="suite-bpms自动化测试" class="show-methods passed suite-bpms自动化测试"> (show)</a> <!-- show-methods passed suite-bpms自动化测试 --> | |
101 | + </span> | |
102 | + <div class="method-list-content passed suite-bpms自动化测试"> | |
103 | + <span> | |
104 | + <img width="3%" src="passed.png"/> | |
105 | + <a href="#" class="method navigator-link" panel-name="suite-bpms自动化测试" title="com.essa.testSuite.Test_Login" hash-for-method="login(admin, essa123)">login(admin, essa123)</a> <!-- method navigator-link --> | |
106 | + </span> | |
107 | + <br/> | |
108 | + <span> | |
109 | + <img width="3%" src="passed.png"/> | |
110 | + <a href="#" class="method navigator-link" panel-name="suite-bpms自动化测试" title="com.essa.testSuite.Test_Login" hash-for-method="login(linrong, essa123)">login(linrong, essa123)</a> <!-- method navigator-link --> | |
111 | + </span> | |
112 | + <br/> | |
113 | + </div> <!-- method-list-content passed suite-bpms自动化测试 --> | |
114 | + </li> | |
115 | + </ul> | |
116 | + </div> <!-- suite-section-content --> | |
117 | + </div> <!-- result-section --> | |
118 | + </div> <!-- navigator-suite-content --> | |
119 | + </div> <!-- rounded-window --> | |
120 | + </div> <!-- suite --> | |
121 | + </div> <!-- navigator-root --> | |
122 | + <div class="wrapper"> | |
123 | + <div class="main-panel-root"> | |
124 | + <div panel-name="suite-bpms自动化测试" class="panel bpms自动化测试"> | |
125 | + <div class="suite-bpms自动化测试-class-passed"> | |
126 | + <div class="main-panel-header rounded-window-top"> | |
127 | + <img src="passed.png"/> | |
128 | + <span class="class-name">com.essa.testSuite.Test_Login</span> | |
129 | + </div> <!-- main-panel-header rounded-window-top --> | |
130 | + <div class="main-panel-content rounded-window-bottom"> | |
131 | + <div class="method"> | |
132 | + <div class="method-content"> | |
133 | + <a name="login(admin, essa123)"> | |
134 | + </a> <!-- login(admin, essa123) --> | |
135 | + <span class="method-name">login</span> | |
136 | + <span class="parameters">(admin, essa123)</span> | |
137 | + </div> <!-- method-content --> | |
138 | + </div> <!-- method --> | |
139 | + <div class="method"> | |
140 | + <div class="method-content"> | |
141 | + <a name="login(linrong, essa123)"> | |
142 | + </a> <!-- login(linrong, essa123) --> | |
143 | + <span class="method-name">login</span> | |
144 | + <span class="parameters">(linrong, essa123)</span> | |
145 | + </div> <!-- method-content --> | |
146 | + </div> <!-- method --> | |
147 | + </div> <!-- main-panel-content rounded-window-bottom --> | |
148 | + </div> <!-- suite-bpms自动化测试-class-passed --> | |
149 | + </div> <!-- panel bpms自动化测试 --> | |
150 | + <div panel-name="test-xml-bpms自动化测试" class="panel"> | |
151 | + <div class="main-panel-header rounded-window-top"> | |
152 | + <span class="header-content">E:\work\essa\suites\testng.xml</span> | |
153 | + </div> <!-- main-panel-header rounded-window-top --> | |
154 | + <div class="main-panel-content rounded-window-bottom"> | |
155 | + <pre> | |
156 | +<?xml version="1.0" encoding="UTF-8"?> | |
157 | +<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> | |
158 | +<suite guice-stage="DEVELOPMENT" name="bpms自动化测试"> | |
159 | + <listeners> | |
160 | + <listener class-name="com.essa.framework.ListenerSuite"/> | |
161 | + </listeners> | |
162 | + <test thread-count="5" name="login"> | |
163 | + <classes> | |
164 | + <class name="com.essa.testSuite.Test_Login"/> | |
165 | + </classes> | |
166 | + </test> <!-- login --> | |
167 | +</suite> <!-- bpms自动化测试 --> | |
168 | + </pre> | |
169 | + </div> <!-- main-panel-content rounded-window-bottom --> | |
170 | + </div> <!-- panel --> | |
171 | + <div panel-name="testlist-bpms自动化测试" class="panel"> | |
172 | + <div class="main-panel-header rounded-window-top"> | |
173 | + <span class="header-content">Tests for bpms自动化测试</span> | |
174 | + </div> <!-- main-panel-header rounded-window-top --> | |
175 | + <div class="main-panel-content rounded-window-bottom"> | |
176 | + <ul> | |
177 | + <li> | |
178 | + <span class="test-name">login (1 class)</span> | |
179 | + </li> | |
180 | + </ul> | |
181 | + </div> <!-- main-panel-content rounded-window-bottom --> | |
182 | + </div> <!-- panel --> | |
183 | + <div panel-name="group-bpms自动化测试" class="panel"> | |
184 | + <div class="main-panel-header rounded-window-top"> | |
185 | + <span class="header-content">Groups for bpms自动化测试</span> | |
186 | + </div> <!-- main-panel-header rounded-window-top --> | |
187 | + <div class="main-panel-content rounded-window-bottom"> | |
188 | + </div> <!-- main-panel-content rounded-window-bottom --> | |
189 | + </div> <!-- panel --> | |
190 | + <div panel-name="times-bpms自动化测试" class="panel"> | |
191 | + <div class="main-panel-header rounded-window-top"> | |
192 | + <span class="header-content">Times for bpms自动化测试</span> | |
193 | + </div> <!-- main-panel-header rounded-window-top --> | |
194 | + <div class="main-panel-content rounded-window-bottom"> | |
195 | + <div class="times-div"> | |
196 | + <script type="text/javascript"> | |
197 | +suiteTableInitFunctions.push('tableData_bpms自动化测试'); | |
198 | +function tableData_bpms自动化测试() { | |
199 | +var data = new google.visualization.DataTable(); | |
200 | +data.addColumn('number', 'Number'); | |
201 | +data.addColumn('string', 'Method'); | |
202 | +data.addColumn('string', 'Class'); | |
203 | +data.addColumn('number', 'Time (ms)'); | |
204 | +data.addRows(2); | |
205 | +data.setCell(0, 0, 0) | |
206 | +data.setCell(0, 1, 'login') | |
207 | +data.setCell(0, 2, 'com.essa.testSuite.Test_Login') | |
208 | +data.setCell(0, 3, 9690); | |
209 | +data.setCell(1, 0, 1) | |
210 | +data.setCell(1, 1, 'login') | |
211 | +data.setCell(1, 2, 'com.essa.testSuite.Test_Login') | |
212 | +data.setCell(1, 3, 9110); | |
213 | +window.suiteTableData['bpms自动化测试']= { tableData: data, tableDiv: 'times-div-bpms自动化测试'} | |
214 | +return data; | |
215 | +} | |
216 | + </script> | |
217 | + <span class="suite-total-time">Total running time: 18 seconds</span> | |
218 | + <div id="times-div-bpms自动化测试"> | |
219 | + </div> <!-- times-div-bpms自动化测试 --> | |
220 | + </div> <!-- times-div --> | |
221 | + </div> <!-- main-panel-content rounded-window-bottom --> | |
222 | + </div> <!-- panel --> | |
223 | + <div panel-name="reporter-bpms自动化测试" class="panel"> | |
224 | + <div class="main-panel-header rounded-window-top"> | |
225 | + <span class="header-content">Reporter output for bpms自动化测试</span> | |
226 | + </div> <!-- main-panel-header rounded-window-top --> | |
227 | + <div class="main-panel-content rounded-window-bottom"> | |
228 | + </div> <!-- main-panel-content rounded-window-bottom --> | |
229 | + </div> <!-- panel --> | |
230 | + <div panel-name="ignored-methods-bpms自动化测试" class="panel"> | |
231 | + <div class="main-panel-header rounded-window-top"> | |
232 | + <span class="header-content">0 ignored methods</span> | |
233 | + </div> <!-- main-panel-header rounded-window-top --> | |
234 | + <div class="main-panel-content rounded-window-bottom"> | |
235 | + </div> <!-- main-panel-content rounded-window-bottom --> | |
236 | + </div> <!-- panel --> | |
237 | + <div panel-name="chronological-bpms自动化测试" class="panel"> | |
238 | + <div class="main-panel-header rounded-window-top"> | |
239 | + <span class="header-content">Methods in chronological order</span> | |
240 | + </div> <!-- main-panel-header rounded-window-top --> | |
241 | + <div class="main-panel-content rounded-window-bottom"> | |
242 | + <div class="chronological-class"> | |
243 | + <div class="chronological-class-name">com.essa.testSuite.Test_Login</div> <!-- chronological-class-name --> | |
244 | + <div class="configuration-class before"> | |
245 | + <span class="method-name">setUp</span> | |
246 | + <span class="method-start">0 ms</span> | |
247 | + </div> <!-- configuration-class before --> | |
248 | + <div class="test-method"> | |
249 | + <span class="method-name">login(admin, essa123)</span> | |
250 | + <span class="method-start">14793 ms</span> | |
251 | + </div> <!-- test-method --> | |
252 | + <div class="test-method"> | |
253 | + <span class="method-name">login(linrong, essa123)</span> | |
254 | + <span class="method-start">24487 ms</span> | |
255 | + </div> <!-- test-method --> | |
256 | + <div class="configuration-class after"> | |
257 | + <span class="method-name">tearDown</span> | |
258 | + <span class="method-start">33604 ms</span> | |
259 | + </div> <!-- configuration-class after --> | |
260 | + </div> <!-- main-panel-content rounded-window-bottom --> | |
261 | + </div> <!-- panel --> | |
262 | + </div> <!-- main-panel-root --> | |
263 | + </div> <!-- wrapper --> | |
264 | + </body> | |
265 | +</html> | ... | ... |
1 | +++ a/test-output/jquery-1.7.1.min.js | |
... | ... | @@ -0,0 +1,4 @@ |
1 | +/*! jQuery v1.7.1 jquery.com | jquery.org/license */ | |
2 | +(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cv(a){if(!ck[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){cl||(cl=c.createElement("iframe"),cl.frameBorder=cl.width=cl.height=0),b.appendChild(cl);if(!cm||!cl.createElement)cm=(cl.contentWindow||cl.contentDocument).document,cm.write((c.compatMode==="CSS1Compat"?"<!doctype html>":"")+"<html><body>"),cm.close();d=cm.createElement(a),cm.body.appendChild(d),e=f.css(d,"display"),b.removeChild(cl)}ck[a]=e}return ck[a]}function cu(a,b){var c={};f.each(cq.concat.apply([],cq.slice(0,b)),function(){c[this]=a});return c}function ct(){cr=b}function cs(){setTimeout(ct,0);return cr=f.now()}function cj(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ci(){try{return new a.XMLHttpRequest}catch(b){}}function cc(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h=="string"&&(e[h.toLowerCase()]=a.converters[h]);l=k,k=d[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=e[m]||e["* "+k];if(!n){p=b;for(o in e){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=e[j[1]+" "+k];if(p){o=e[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&f.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function cb(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function ca(a,b,c,d){if(f.isArray(b))f.each(b,function(b,e){c||bE.test(a)?d(a,e):ca(a+"["+(typeof e=="object"||f.isArray(e)?b:"")+"]",e,c,d)});else if(!c&&b!=null&&typeof b=="object")for(var e in b)ca(a+"["+e+"]",b[e],c,d);else d(a,b)}function b_(a,c){var d,e,g=f.ajaxSettings.flatOptions||{};for(d in c)c[d]!==b&&((g[d]?a:e||(e={}))[d]=c[d]);e&&f.extend(!0,a,e)}function b$(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bT,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l=="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=b$(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=b$(a,c,d,e,"*",g));return l}function bZ(a){return function(b,c){typeof b!="string"&&(c=b,b="*");if(f.isFunction(c)){var d=b.toLowerCase().split(bP),e=0,g=d.length,h,i,j;for(;e<g;e++)h=d[e],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function bC(a,b,c){var d=b==="width"?a.offsetWidth:a.offsetHeight,e=b==="width"?bx:by,g=0,h=e.length;if(d>0){if(c!=="border")for(;g<h;g++)c||(d-=parseFloat(f.css(a,"padding"+e[g]))||0),c==="margin"?d+=parseFloat(f.css(a,c+e[g]))||0:d-=parseFloat(f.css(a,"border"+e[g]+"Width"))||0;return d+"px"}d=bz(a,b,b);if(d<0||d==null)d=a.style[b]||0;d=parseFloat(d)||0;if(c)for(;g<h;g++)d+=parseFloat(f.css(a,"padding"+e[g]))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+e[g]+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+e[g]))||0);return d+"px"}function bp(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(bf,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function bo(a){var b=c.createElement("div");bh.appendChild(b),b.innerHTML=a.outerHTML;return b.firstChild}function bn(a){var b=(a.nodeName||"").toLowerCase();b==="input"?bm(a):b!=="script"&&typeof a.getElementsByTagName!="undefined"&&f.grep(a.getElementsByTagName("input"),bm)}function bm(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bl(a){return typeof a.getElementsByTagName!="undefined"?a.getElementsByTagName("*"):typeof a.querySelectorAll!="undefined"?a.querySelectorAll("*"):[]}function bk(a,b){var c;if(b.nodeType===1){b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase();if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(f.expando)}}function bj(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c,d,e,g=f._data(a),h=f._data(b,g),i=g.events;if(i){delete h.handle,h.events={};for(c in i)for(d=0,e=i[c].length;d<e;d++)f.event.add(b,c+(i[c][d].namespace?".":"")+i[c][d].namespace,i[c][d],i[c][d].data)}h.data&&(h.data=f.extend({},h.data))}}function bi(a,b){return f.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function U(a){var b=V.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}function T(a,b,c){b=b||0;if(f.isFunction(b))return f.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return f.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=f.grep(a,function(a){return a.nodeType===1});if(O.test(b))return f.filter(b,d,!c);b=f.filter(b,d)}return f.grep(a,function(a,d){return f.inArray(a,b)>=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?parseFloat(d):j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c<d;c++)b[a[c]]=!0;return b}var c=a.document,d=a.navigator,e=a.location,f=function(){function J(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(J,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){d=i[c],f=a[c];if(i===f)continue;l&&f&&(e.isPlainObject(f)||(g=e.isArray(f)))?(g?(g=!1,h=d&&e.isArray(d)?d:[]):h=d&&e.isPlainObject(d)?d:{},i[c]=e.extend(l,h,f)):f!==b&&(i[c]=f)}return i},e.extend({noConflict:function(b){a.$===e&&(a.$=g),b&&a.jQuery===e&&(a.jQuery=f);return e},isReady:!1,readyWait:1,holdReady:function(a){a?e.readyWait++:e.ready(!0)},ready:function(a){if(a===!0&&!--e.readyWait||a!==!0&&!e.isReady){if(!c.body)return setTimeout(e.ready,1);e.isReady=!0;if(a!==!0&&--e.readyWait>0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g<h;)if(c.apply(a[g++],d)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(;g<h;)if(c.call(a[g],g,a[g++])===!1)break;return a},trim:G?function(a){return a==null?"":G.call(a)}:function(a){return a==null?"":(a+"").replace(k,"").replace(l,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var d=e.type(a);a.length==null||d==="string"||d==="function"||d==="regexp"||e.isWindow(a)?E.call(c,a):e.merge(c,a)}return c},inArray:function(a,b,c){var d;if(b){if(H)return H.call(b,a,c);d=b.length,c=c?c<0?Math.max(0,d+c):c:0;for(;c<d;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length=="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,c,d){var f,g,h=[],i=0,j=a.length,k=a instanceof e||j!==b&&typeof j=="number"&&(j>0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i<j;i++)f=c(a[i],i,d),f!=null&&(h[h.length]=f);else for(g in a)f=c(a[g],g,d),f!=null&&(h[h.length]=f);return h.concat.apply([],h)},guid:1,proxy:function(a,c){if(typeof c=="string"){var d=a[c];c=a,a=d}if(!e.isFunction(a))return b;var f=F.call(arguments,2),g=function(){return a.apply(c,f.concat(F.call(arguments)))};g.guid=a.guid=a.guid||g.guid||e.guid++;return g},access:function(a,c,d,f,g,h){var i=a.length;if(typeof c=="object"){for(var j in c)e.access(a,j,c[j],f,g,d);return a}if(d!==b){f=!h&&f&&e.isFunction(d);for(var k=0;k<i;k++)g(a[k],c,f?d.call(a[k],k,g(a[k],c)):d,h);return a}return i?g(a[0],c):b},now:function(){return(new Date).getTime()},uaMatch:function(a){a=a.toLowerCase();var b=r.exec(a)||s.exec(a)||t.exec(a)||a.indexOf("compatible")<0&&u.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}e.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function(d,f){f&&f instanceof e&&!(f instanceof a)&&(f=a(f));return e.fn.init.call(this,d,f,b)},a.fn.init.prototype=a.fn;var b=a(c);return a},browser:{}}),e.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){I["[object "+b+"]"]=b.toLowerCase()}),z=e.uaMatch(y),z.browser&&(e.browser[z.browser]=!0,e.browser.version=z.version),e.browser.webkit&&(e.browser.safari=!0),j.test(" ")&&(k=/^[\s\xA0]+/,l=/[\s\xA0]+$/),h=e(c),c.addEventListener?B=function(){c.removeEventListener("DOMContentLoaded",B,!1),e.ready()}:c.attachEvent&&(B=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",B),e.ready())});return e}(),g={};f.Callbacks=function(a){a=a?g[a]||h(a):{};var c=[],d=[],e,i,j,k,l,m=function(b){var d,e,g,h,i;for(d=0,e=b.length;d<e;d++)g=b[d],h=f.type(g),h==="array"?m(g):h==="function"&&(!a.unique||!o.has(g))&&c.push(g)},n=function(b,f){f=f||[],e=!a.memory||[b,f],i=!0,l=j||0,j=0,k=c.length;for(;c&&l<k;l++)if(c[l].apply(b,f)===!1&&a.stopOnFalse){e=!0;break}i=!1,c&&(a.once?e===!0?o.disable():c=[]:d&&d.length&&(e=d.shift(),o.fireWith(e[0],e[1])))},o={add:function(){if(c){var a=c.length;m(arguments),i?k=c.length:e&&e!==!0&&(j=a,n(e[0],e[1]))}return this},remove:function(){if(c){var b=arguments,d=0,e=b.length;for(;d<e;d++)for(var f=0;f<c.length;f++)if(b[d]===c[f]){i&&f<=k&&(k--,f<=l&&l--),c.splice(f--,1);if(a.unique)break}}return this},has:function(a){if(c){var b=0,d=c.length;for(;b<d;b++)if(a===c[b])return!0}return!1},empty:function(){c=[];return this},disable:function(){c=d=e=b;return this},disabled:function(){return!c},lock:function(){d=b,(!e||e===!0)&&o.disable();return this},locked:function(){return!d},fireWith:function(b,c){d&&(i?a.once||d.push([b,c]):(!a.once||!e)&&n(b,c));return this},fire:function(){o.fireWith(this,arguments);return this},fired:function(){return!!e}};return o};var i=[].slice;f.extend({Deferred:function(a){var b=f.Callbacks("once memory"),c=f.Callbacks("once memory"),d=f.Callbacks("memory"),e="pending",g={resolve:b,reject:c,notify:d},h={done:b.add,fail:c.add,progress:d.add,state:function(){return e},isResolved:b.fired,isRejected:c.fired,then:function(a,b,c){i.done(a).fail(b).progress(c);return this},always:function(){i.done.apply(i,arguments).fail.apply(i,arguments);return this},pipe:function(a,b,c){return f.Deferred(function(d){f.each({done:[a,"resolve"],fail:[b,"reject"],progress:[c,"notify"]},function(a,b){var c=b[0],e=b[1],g;f.isFunction(c)?i[a](function(){g=c.apply(this,arguments),g&&f.isFunction(g.promise)?g.promise().then(d.resolve,d.reject,d.notify):d[e+"With"](this===i?d:this,[g])}):i[a](d[e])})}).promise()},promise:function(a){if(a==null)a=h;else for(var b in h)a[b]=h[b];return a}},i=h.promise({}),j;for(j in g)i[j]=g[j].fire,i[j+"With"]=g[j].fireWith;i.done(function(){e="resolved"},c.disable,d.lock).fail(function(){e="rejected"},b.disable,d.lock),a&&a.call(i,i);return i},when:function(a){function m(a){return function(b){e[a]=arguments.length>1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c<d;c++)b[c]&&b[c].promise&&f.isFunction(b[c].promise)?b[c].promise().then(l(c),j.reject,m(c)):--g;g||j.resolveWith(j,b)}else j!==a&&j.resolveWith(j,d?[a]:[]);return k}}),f.support=function(){var b,d,e,g,h,i,j,k,l,m,n,o,p,q=c.createElement("div"),r=c.documentElement;q.setAttribute("className","t"),q.innerHTML=" <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>",d=q.getElementsByTagName("*"),e=q.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=q.getElementsByTagName("input")[0],b={leadingWhitespace:q.firstChild.nodeType===3,tbody:!q.getElementsByTagName("tbody").length,htmlSerialize:!!q.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:q.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav></:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete q.test}catch(s){b.deleteExpando=!1}!q.addEventListener&&q.attachEvent&&q.fireEvent&&(q.attachEvent("onclick",function(){b.noCloneEvent=!1}),q.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),q.appendChild(i),k=c.createDocumentFragment(),k.appendChild(q.lastChild),b.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,k.removeChild(i),k.appendChild(q),q.innerHTML="",a.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",q.style.width="2px",q.appendChild(j),b.reliableMarginRight=(parseInt((a.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0);if(q.attachEvent)for(o in{submit:1,change:1,focusin:1})n="on"+o,p=n in q,p||(q.setAttribute(n,"return;"),p=typeof q[n]=="function"),b[o+"Bubbles"]=p;k.removeChild(q),k=g=h=j=q=i=null,f(function(){var a,d,e,g,h,i,j,k,m,n,o,r=c.getElementsByTagName("body")[0];!r||(j=1,k="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;",m="visibility:hidden;border:0;",n="style='"+k+"border:5px solid #000;padding:0;'",o="<div "+n+"><div></div></div>"+"<table "+n+" cellpadding='0' cellspacing='0'>"+"<tr><td></td></tr></table>",a=c.createElement("div"),a.style.cssText=m+"width:0;height:0;position:static;top:0;margin-top:"+j+"px",r.insertBefore(a,r.firstChild),q=c.createElement("div"),a.appendChild(q),q.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>",l=q.getElementsByTagName("td"),p=l[0].offsetHeight===0,l[0].style.display="",l[1].style.display="none",b.reliableHiddenOffsets=p&&l[0].offsetHeight===0,q.innerHTML="",q.style.width=q.style.paddingLeft="1px",f.boxModel=b.boxModel=q.offsetWidth===2,typeof q.style.zoom!="undefined"&&(q.style.display="inline",q.style.zoom=1,b.inlineBlockNeedsLayout=q.offsetWidth===2,q.style.display="",q.innerHTML="<div style='width:4px;'></div>",b.shrinkWrapBlocks=q.offsetWidth!==2),q.style.cssText=k+m,q.innerHTML=o,d=q.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,i={doesNotAddBorder:e.offsetTop!==5,doesAddBorderForTableAndCells:h.offsetTop===5},e.style.position="fixed",e.style.top="20px",i.fixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",i.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,i.doesNotIncludeMarginInBodyOffset=r.offsetTop!==j,r.removeChild(a),q=a=null,f.extend(b,i))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e<g;e++)delete d[b[e]];if(!(c?m:f.isEmptyObject)(d))return}}if(!c){delete j[k].data;if(!m(j[k]))return}f.support.deleteExpando||!j.setInterval?delete j[k]:j[k]=null,i&&(f.support.deleteExpando?delete a[h]:a.removeAttribute?a.removeAttribute(h):a[h]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d,e,g,h=null;if(typeof a=="undefined"){if(this.length){h=f.data(this[0]);if(this[0].nodeType===1&&!f._data(this[0],"parsedAttrs")){e=this[0].attributes;for(var i=0,j=e.length;i<j;i++)g=e[i].name,g.indexOf("data-")===0&&(g=f.camelCase(g.substring(5)),l(this[0],g,h[g]));f._data(this[0],"parsedAttrs",!0)}}return h}if(typeof a=="object")return this.each(function(){f.data(this,a)});d=a.split("."),d[1]=d[1]?"."+d[1]:"";if(c===b){h=this.triggerHandler("getData"+d[1]+"!",[d[0]]),h===b&&this.length&&(h=f.data(this[0],a),h=l(this[0],a,h));return h===b&&d[1]?this.data(d[0]):h}return this.each(function(){var b=f(this),e=[d[0],c];b.triggerHandler("setData"+d[1]+"!",e),f.data(this,a,c),b.triggerHandler("changeData"+d[1]+"!",e)})},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,b){a&&(b=(b||"fx")+"mark",f._data(a,b,(f._data(a,b)||0)+1))},_unmark:function(a,b,c){a!==!0&&(c=b,b=a,a=!1);if(b){c=c||"fx";var d=c+"mark",e=a?0:(f._data(b,d)||1)-1;e?f._data(b,d,e):(f.removeData(b,d,!0),n(b,c,"mark"))}},queue:function(a,b,c){var d;if(a){b=(b||"fx")+"queue",d=f._data(a,b),c&&(!d||f.isArray(c)?d=f._data(a,b,f.makeArray(c)):d.push(c));return d||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e={};d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),f._data(a,b+".run",e),d.call(a,function(){f.dequeue(a,b)},e)),c.length||(f.removeData(a,b+"queue "+b+".run",!0),n(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){typeof a!="string"&&(c=a,a="fx");if(c===b)return f.queue(this[0],a);return this.each(function(){var b=f.queue(this,a,c);a==="fx"&&b[0]!=="inprogress"&&f.dequeue(this,a)})},dequeue:function(a){return this.each(function(){f.dequeue(this,a)})},delay:function(a,b){a=f.fx?f.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){function m(){--h||d.resolveWith(e,[e])}typeof a!="string"&&(c=a,a=b),a=a||"fx";var d=f.Deferred(),e=this,g=e.length,h=1,i=a+"defer",j=a+"queue",k=a+"mark",l;while(g--)if(l=f.data(e[g],i,b,!0)||(f.data(e[g],j,b,!0)||f.data(e[g],k,b,!0))&&f.data(e[g],i,f.Callbacks("once memory"),!0))h++,l.add(m);m();return d.promise()}});var o=/[\n\t\r]/g,p=/\s+/,q=/\r/g,r=/^(?:button|input)$/i,s=/^(?:button|input|object|select|textarea)$/i,t=/^a(?:rea)?$/i,u=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,v=f.support.getSetAttribute,w,x,y;f.fn.extend({attr:function(a,b){return f.access(this,a,b,!0,f.attr)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,a,b,!0,f.prop)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,g,h,i;if(f.isFunction(a))return this.each(function(b){f(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(p);for(c=0,d=this.length;c<d;c++){e=this[c];if(e.nodeType===1)if(!e.className&&b.length===1)e.className=a;else{g=" "+e.className+" ";for(h=0,i=b.length;h<i;h++)~g.indexOf(" "+b[h]+" ")||(g+=b[h]+" ");e.className=f.trim(g)}}}return this},removeClass:function(a){var c,d,e,g,h,i,j;if(f.isFunction(a))return this.each(function(b){f(this).removeClass(a.call(this,b,this.className))});if(a&&typeof a=="string"||a===b){c=(a||"").split(p);for(d=0,e=this.length;d<e;d++){g=this[d];if(g.nodeType===1&&g.className)if(a){h=(" "+g.className+" ").replace(o," ");for(i=0,j=c.length;i<j;i++)h=h.replace(" "+c[i]+" "," ");g.className=f.trim(h)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";if(f.isFunction(a))return this.each(function(c){f(this).toggleClass(a.call(this,c,this.className,b),b)});return this.each(function(){if(c==="string"){var e,g=0,h=f(this),i=b,j=a.split(p);while(e=j[g++])i=d?i:!h.hasClass(e),h[i?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&f._data(this,"__className__",this.className),this.className=this.className||a===!1?"":f._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ",c=0,d=this.length;for(;c<d;c++)if(this[c].nodeType===1&&(" "+this[c].className+" ").replace(o," ").indexOf(b)>-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.nodeName.toLowerCase()]||f.valHooks[g.type];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c<d;c++){e=i[c];if(e.selected&&(f.support.optDisabled?!e.disabled:e.getAttribute("disabled")===null)&&(!e.parentNode.disabled||!f.nodeName(e.parentNode,"optgroup"))){b=f(e).val();if(j)return b;h.push(b)}}if(j&&!h.length&&i.length)return f(i[g]).val();return h},set:function(a,b){var c=f.makeArray(b);f(a).find("option").each(function(){this.selected=f.inArray(f(this).val(),c)>=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;h<g;h++)e=d[h],e&&(c=f.propFix[e]||e,f.attr(a,e,""),a.removeAttribute(v?e:c),u.test(e)&&c in a&&(a[c]=!1))}},attrHooks:{type:{set:function(a,b){if(r.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},value:{get:function(a,b){if(w&&f.nodeName(a,"button"))return w.get(a,b);return b in a?a.value:null},set:function(a,b,c){if(w&&f.nodeName(a,"button"))return w.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e,g,h,i=a.nodeType;if(!!a&&i!==3&&i!==8&&i!==2){h=i!==1||!f.isXMLDoc(a),h&&(c=f.propFix[c]||c,g=f.propHooks[c]);return d!==b?g&&"set"in g&&(e=g.set(a,d,c))!==b?e:a[c]=d:g&&"get"in g&&(e=g.get(a,c))!==null?e:a[c]}},propHooks:{tabIndex:{get:function(a){var c=a.getAttributeNode("tabindex");return c&&c.specified?parseInt(c.value,10):s.test(a.nodeName)||t.test(a.nodeName)&&a.href?0:b}}}}),f.attrHooks.tabindex=f.propHooks.tabIndex,x={get:function(a,c){var d,e=f.prop(a,c);return e===!0||typeof e!="boolean"&&(d=a.getAttributeNode(c))&&d.nodeValue!==!1?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase()));return c}},v||(y={name:!0,id:!0},w=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&(y[c]?d.nodeValue!=="":d.specified)?d.nodeValue:b},set:function(a,b,d){var e=a.getAttributeNode(d);e||(e=c.createAttribute(d),a.setAttributeNode(e));return e.nodeValue=b+""}},f.attrHooks.tabindex.set=w.set,f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})}),f.attrHooks.contenteditable={get:w.get,set:function(a,b,c){b===""&&(b="false"),w.set(a,b,c)}}),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex);return null}})),f.support.enctype||(f.propFix.enctype="encoding"),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/\bhover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function(a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")}; | |
3 | +f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k<c.length;k++){l=A.exec(c[k])||[],m=l[1],n=(l[2]||"").split(".").sort(),s=f.event.special[m]||{},m=(g?s.delegateType:s.bindType)||m,s=f.event.special[m]||{},o=f.extend({type:m,origType:l[1],data:e,handler:d,guid:d.guid,selector:g,quick:G(g),namespace:n.join(".")},p),r=j[m];if(!r){r=j[m]=[],r.delegateCount=0;if(!s.setup||s.setup.call(a,e,n,i)===!1)a.addEventListener?a.addEventListener(m,i,!1):a.attachEvent&&a.attachEvent("on"+m,i)}s.add&&(s.add.call(a,o),o.handler.guid||(o.handler.guid=d.guid)),g?r.splice(r.delegateCount++,0,o):r.push(o),f.event.global[m]=!0}a=null}},global:{},remove:function(a,b,c,d,e){var g=f.hasData(a)&&f._data(a),h,i,j,k,l,m,n,o,p,q,r,s;if(!!g&&!!(o=g.events)){b=f.trim(I(b||"")).split(" ");for(h=0;h<b.length;h++){i=A.exec(b[h])||[],j=k=i[1],l=i[2];if(!j){for(j in o)f.event.remove(a,j+b[h],c,d,!0);continue}p=f.event.special[j]||{},j=(d?p.delegateType:p.bindType)||j,r=o[j]||[],m=r.length,l=l?new RegExp("(^|\\.)"+l.split(".").sort().join("\\.(?:.*\\.)?")+"(\\.|$)"):null;for(n=0;n<r.length;n++)s=r[n],(e||k===s.origType)&&(!c||c.guid===s.guid)&&(!l||l.test(s.namespace))&&(!d||d===s.selector||d==="**"&&s.selector)&&(r.splice(n--,1),s.selector&&r.delegateCount--,p.remove&&p.remove.call(a,s));r.length===0&&m!==r.length&&((!p.teardown||p.teardown.call(a,l)===!1)&&f.removeEvent(a,j,g.handle),delete o[j])}f.isEmptyObject(o)&&(q=g.handle,q&&(q.elem=null),f.removeData(a,["events","handle"],!0))}},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,e,g){if(!e||e.nodeType!==3&&e.nodeType!==8){var h=c.type||c,i=[],j,k,l,m,n,o,p,q,r,s;if(E.test(h+f.event.triggered))return;h.indexOf("!")>=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;l<r.length&&!c.isPropagationStopped();l++)m=r[l][0],c.type=r[l][1],q=(f._data(m,"events")||{})[c.type]&&f._data(m,"handle"),q&&q.apply(m,d),q=o&&m[o],q&&f.acceptData(m)&&q.apply(m,d)===!1&&c.preventDefault();c.type=h,!g&&!c.isDefaultPrevented()&&(!p._default||p._default.apply(e.ownerDocument,d)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)&&o&&e[h]&&(h!=="focus"&&h!=="blur"||c.target.offsetWidth!==0)&&!f.isWindow(e)&&(n=e[o],n&&(e[o]=null),f.event.triggered=h,e[h](),f.event.triggered=b,n&&(e[o]=n));return c.result}},dispatch:function(c){c=f.event.fix(c||a.event);var d=(f._data(this,"events")||{})[c.type]||[],e=d.delegateCount,g=[].slice.call(arguments,0),h=!c.exclusive&&!c.namespace,i=[],j,k,l,m,n,o,p,q,r,s,t;g[0]=c,c.delegateTarget=this;if(e&&!c.target.disabled&&(!c.button||c.type!=="click")){m=f(this),m.context=this.ownerDocument||this;for(l=c.target;l!=this;l=l.parentNode||this){o={},q=[],m[0]=l;for(j=0;j<e;j++)r=d[j],s=r.selector,o[s]===b&&(o[s]=r.quick?H(l,r.quick):m.is(s)),o[s]&&q.push(r);q.length&&i.push({elem:l,matches:q})}}d.length>e&&i.push({elem:this,matches:d.slice(e)});for(j=0;j<i.length&&!c.isPropagationStopped();j++){p=i[j],c.currentTarget=p.elem;for(k=0;k<p.matches.length&&!c.isImmediatePropagationStopped();k++){r=p.matches[k];if(h||!c.namespace&&!r.namespace||c.namespace_re&&c.namespace_re.test(r.namespace))c.data=r.data,c.handleObj=r,n=((f.event.special[r.origType]||{}).handle||r.handler).apply(p.elem,g),n!==b&&(c.result=n,n===!1&&(c.preventDefault(),c.stopPropagation()))}}return c.result},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){a.which==null&&(a.which=b.charCode!=null?b.charCode:b.keyCode);return a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,d){var e,f,g,h=d.button,i=d.fromElement;a.pageX==null&&d.clientX!=null&&(e=a.target.ownerDocument||c,f=e.documentElement,g=e.body,a.pageX=d.clientX+(f&&f.scrollLeft||g&&g.scrollLeft||0)-(f&&f.clientLeft||g&&g.clientLeft||0),a.pageY=d.clientY+(f&&f.scrollTop||g&&g.scrollTop||0)-(f&&f.clientTop||g&&g.clientTop||0)),!a.relatedTarget&&i&&(a.relatedTarget=i===a.target?d.toElement:i),!a.which&&h!==b&&(a.which=h&1?1:h&2?3:h&4?2:0);return a}},fix:function(a){if(a[f.expando])return a;var d,e,g=a,h=f.event.fixHooks[a.type]||{},i=h.props?this.props.concat(h.props):this.props;a=f.Event(g);for(d=i.length;d;)e=i[--d],a[e]=g[e];a.target||(a.target=g.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),a.metaKey===b&&(a.metaKey=a.ctrlKey);return h.filter?h.filter(a,g):a},special:{ready:{setup:f.bindReady},load:{noBubble:!0},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(a,b,c){f.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}},simulate:function(a,b,c,d){var e=f.extend(new f.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?f.event.trigger(e,null,b):f.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},f.event.handle=f.event.dispatch,f.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},f.Event=function(a,b){if(!(this instanceof f.Event))return new f.Event(a,b);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?K:J):this.type=a,b&&f.extend(this,b),this.timeStamp=a&&a.timeStamp||f.now(),this[f.expando]=!0},f.Event.prototype={preventDefault:function(){this.isDefaultPrevented=K;var a=this.originalEvent;!a||(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=K;var a=this.originalEvent;!a||(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=K,this.stopPropagation()},isDefaultPrevented:J,isPropagationStopped:J,isImmediatePropagationStopped:J},f.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){f.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c=this,d=a.relatedTarget,e=a.handleObj,g=e.selector,h;if(!d||d!==c&&!f.contains(c,d))a.type=e.origType,h=e.handler.apply(this,arguments),a.type=b;return h}}}),f.support.submitBubbles||(f.event.special.submit={setup:function(){if(f.nodeName(this,"form"))return!1;f.event.add(this,"click._submit keypress._submit",function(a){var c=a.target,d=f.nodeName(c,"input")||f.nodeName(c,"button")?c.form:b;d&&!d._submit_attached&&(f.event.add(d,"submit._submit",function(a){this.parentNode&&!a.isTrigger&&f.event.simulate("submit",this.parentNode,a,!0)}),d._submit_attached=!0)})},teardown:function(){if(f.nodeName(this,"form"))return!1;f.event.remove(this,"._submit")}}),f.support.changeBubbles||(f.event.special.change={setup:function(){if(z.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio")f.event.add(this,"propertychange._change",function(a){a.originalEvent.propertyName==="checked"&&(this._just_changed=!0)}),f.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1,f.event.simulate("change",this,a,!0))});return!1}f.event.add(this,"beforeactivate._change",function(a){var b=a.target;z.test(b.nodeName)&&!b._change_attached&&(f.event.add(b,"change._change",function(a){this.parentNode&&!a.isSimulated&&!a.isTrigger&&f.event.simulate("change",this.parentNode,a,!0)}),b._change_attached=!0)})},handle:function(a){var b=a.target;if(this!==b||a.isSimulated||a.isTrigger||b.type!=="radio"&&b.type!=="checkbox")return a.handleObj.handler.apply(this,arguments)},teardown:function(){f.event.remove(this,"._change");return z.test(this.nodeName)}}),f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){var d=0,e=function(a){f.event.simulate(b,a.target,f.event.fix(a),!0)};f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.fn.extend({on:function(a,c,d,e,g){var h,i;if(typeof a=="object"){typeof c!="string"&&(d=c,c=b);for(i in a)this.on(i,c,d,a[i],g);return this}d==null&&e==null?(e=c,d=c=b):e==null&&(typeof c=="string"?(e=d,d=b):(e=d,d=c,c=b));if(e===!1)e=J;else if(!e)return this;g===1&&(h=e,e=function(a){f().off(a);return h.apply(this,arguments)},e.guid=h.guid||(h.guid=f.guid++));return this.each(function(){f.event.add(this,a,e,d,c)})},one:function(a,b,c,d){return this.on.call(this,a,b,c,d,1)},off:function(a,c,d){if(a&&a.preventDefault&&a.handleObj){var e=a.handleObj;f(a.delegateTarget).off(e.namespace?e.type+"."+e.namespace:e.type,e.selector,e.handler);return this}if(typeof a=="object"){for(var g in a)this.off(g,c,a[g]);return this}if(c===!1||typeof c=="function")d=c,c=b;d===!1&&(d=J);return this.each(function(){f.event.remove(this,a,d,c)})},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},live:function(a,b,c){f(this.context).on(a,this.selector,b,c);return this},die:function(a,b){f(this.context).off(a,this.selector||"**",b);return this},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return arguments.length==1?this.off(a,"**"):this.off(b,a,c)},trigger:function(a,b){return this.each(function(){f.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return f.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||f.guid++,d=0,e=function(c){var e=(f._data(this,"lastToggle"+a.guid)||0)%d;f._data(this,"lastToggle"+a.guid,e+1),c.preventDefault();return b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),f.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){f.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h<i;h++){var j=e[h];if(j){var k=!1;j=j[a];while(j){if(j[d]===c){k=e[j.sizset];break}if(j.nodeType===1){g||(j[d]=c,j.sizset=h);if(typeof b!="string"){if(j===b){k=!0;break}}else if(m.filter(b,[j]).length>0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h<i;h++){var j=e[h];if(j){var k=!1;j=j[a];while(j){if(j[d]===c){k=e[j.sizset];break}j.nodeType===1&&!g&&(j[d]=c,j.sizset=h);if(j.nodeName.toLowerCase()===b){k=j;break}j=j[a]}e[h]=k}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},m.matches=function(a,b){return m(a,null,null,b)},m.matchesSelector=function(a,b){return m(b,null,null,[a]).length>0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e<f;e++){h=o.order[e];if(g=o.leftMatch[h].exec(a)){i=g[1],g.splice(1,1);if(i.substr(i.length-1)!=="\\"){g[1]=(g[1]||"").replace(j,""),d=o.find[h](g,b,c);if(d!=null){a=a.replace(o.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},m.filter=function(a,c,d,e){var f,g,h,i,j,k,l,n,p,q=a,r=[],s=c,t=c&&c[0]&&m.isXML(c[0]);while(a&&c.length){for(h in o.filter)if((f=o.leftMatch[h].exec(a))!=null&&f[2]){k=o.filter[h],l=f[1],g=!1,f.splice(1,1);if(l.substr(l.length-1)==="\\")continue;s===r&&(r=[]);if(o.preFilter[h]){f=o.preFilter[h](f,s,d,r,e,t);if(!f)g=i=!0;else if(f===!0)continue}if(f)for(n=0;(j=s[n])!=null;n++)j&&(i=k(j,f,n,s),p=e^i,d&&i!=null?p?g=!0:s[n]=!1:p&&(r.push(j),g=!0));if(i!==b){d||(s=r),a=a.replace(o.match[h],"");if(!g)return[];break}}if(a===q)if(g==null)m.error(a);else break;q=a}return s},m.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)};var n=m.getText=function(a){var b,c,d=a.nodeType,e="";if(d){if(d===1||d===9){if(typeof a.textContent=="string")return a.textContent;if(typeof a.innerText=="string")return a.innerText.replace(k,"");for(a=a.firstChild;a;a=a.nextSibling)e+=n(a)}else if(d===3||d===4)return a.nodeValue}else for(b=0;c=a[b];b++)c.nodeType!==8&&(e+=n(c));return e},o=m.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b=="string",d=c&&!l.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1);a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&m.filter(b,a,!0)},">":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&m.filter(b,a,!0)}},"":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("parentNode",b,f,a,d,c)},"~":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("previousSibling",b,f,a,d,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(j,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h<i;h++)if(g[h]===a)return!1;return!0}m.error(e)},CHILD:function(a,b){var c,e,f,g,h,i,j,k=b[1],l=a;switch(k){case"only":case"first":while(l=l.previousSibling)if(l.nodeType===1)return!1;if(k==="first")return!0;l=a;case"last":while(l=l.nextSibling)if(l.nodeType===1)return!1;return!0;case"nth":c=b[2],e=b[3];if(c===1&&e===0)return!0;f=b[0],g=a.parentNode;if(g&&(g[d]!==f||!a.nodeIndex)){i=0;for(l=g.firstChild;l;l=l.nextSibling)l.nodeType===1&&(l.nodeIndex=++i);g[d]=f}j=a.nodeIndex-e;return c===0?j===0:j%c===0&&j/c>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c<e;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var u,v;c.documentElement.compareDocumentPosition?u=function(a,b){if(a===b){h=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(u=function(a,b){if(a===b){h=!0;return 0}if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],f=[],g=a.parentNode,i=b.parentNode,j=g;if(g===i)return v(a,b);if(!g)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return v(e[k],f[k]);return k===c?v(a,f[k],-1):v(e[k],b,1)},v=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="<div class='test e'></div><div class='test'></div>";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h<i;h++)m(a,g[h],e,c);return m.filter(f,e)};m.attr=f.attr,m.selectors.attrMap={},f.find=m,f.expr=m.selectors,f.expr[":"]=f.expr.filters,f.unique=m.uniqueSort,f.text=m.getText,f.isXMLDoc=m.isXML,f.contains=m.contains}();var L=/Until$/,M=/^(?:parents|prevUntil|prevAll)/,N=/,/,O=/^.[^:#\[\.,]*$/,P=Array.prototype.slice,Q=f.expr.match.POS,R={children:!0,contents:!0,next:!0,prev:!0};f.fn.extend({find:function(a){var b=this,c,d;if(typeof a!="string")return f(a).filter(function(){for(c=0,d=b.length;c<d;c++)if(f.contains(b[c],this))return!0});var e=this.pushStack("","find",a),g,h,i;for(c=0,d=this.length;c<d;c++){g=e.length,f.find(a,this[c],e);if(c>0)for(h=g;h<e.length;h++)for(i=0;i<g;i++)if(e[i]===e[h]){e.splice(h--,1);break}}return e},has:function(a){var b=f(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++)if(f.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(T(this,a,!1),"not",a)},filter:function(a){return this.pushStack(T(this,a,!0),"filter",a)},is:function(a){return!!a&&(typeof a=="string"?Q.test(a)?f(a,this.context).index(this[0])>=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d<a.length;d++)f(g).is(a[d])&&c.push({selector:a[d],elem:g,level:h});g=g.parentNode,h++}return c}var i=Q.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d<e;d++){g=this[d];while(g){if(i?i.index(g)>-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/<tbody/i,_=/<|&#?\w+;/,ba=/<(?:script|style)/i,bb=/<(?:script|object|embed|option|style)/i,bc=new RegExp("<(?:"+V+")","i"),bd=/checked\s*(?:[^=]|=\s*.checked.)/i,be=/\/(java|ecma)script/i,bf=/^\s*<!(?:\[CDATA\[|\-\-)/,bg={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div<div>","</div>"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function() | |
4 | +{for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1></$2>");try{for(var c=0,d=this.length;c<d;c++)this[c].nodeType===1&&(f.cleanData(this[c].getElementsByTagName("*")),this[c].innerHTML=a)}catch(e){this.empty().append(a)}}else f.isFunction(a)?this.each(function(b){var c=f(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(f.isFunction(a))return this.each(function(b){var c=f(this),d=c.html();c.replaceWith(a.call(this,b,d))});typeof a!="string"&&(a=f(a).detach());return this.each(function(){var b=this.nextSibling,c=this.parentNode;f(this).remove(),b?f(b).before(a):f(c).append(a)})}return this.length?this.pushStack(f(f.isFunction(a)?a():a),"replaceWith",a):this},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,d){var e,g,h,i,j=a[0],k=[];if(!f.support.checkClone&&arguments.length===3&&typeof j=="string"&&bd.test(j))return this.each(function(){f(this).domManip(a,c,d,!0)});if(f.isFunction(j))return this.each(function(e){var g=f(this);a[0]=j.call(this,e,c?g.html():b),g.domManip(a,c,d)});if(this[0]){i=j&&j.parentNode,f.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?e={fragment:i}:e=f.buildFragment(a,this,k),h=e.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&f.nodeName(g,"tr");for(var l=0,m=this.length,n=m-1;l<m;l++)d.call(c?bi(this[l],g):this[l],e.cacheable||m>1&&l<n?f.clone(h,!0,!0):h)}k.length&&f.each(k,bp)}return this}}),f.buildFragment=function(a,b,d){var e,g,h,i,j=a[0];b&&b[0]&&(i=b[0].ownerDocument||b[0]),i.createDocumentFragment||(i=c),a.length===1&&typeof j=="string"&&j.length<512&&i===c&&j.charAt(0)==="<"&&!bb.test(j)&&(f.support.checkClone||!bd.test(j))&&(f.support.html5Clone||!bc.test(j))&&(g=!0,h=f.fragments[j],h&&h!==1&&(e=h)),e||(e=i.createDocumentFragment(),f.clean(a,i,e,d)),g&&(f.fragments[j]=h?e:1);return{fragment:e,cacheable:g}},f.fragments={},f.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){f.fn[a]=function(c){var d=[],e=f(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&e.length===1){e[b](this[0]);return this}for(var h=0,i=e.length;h<i;h++){var j=(h>0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||!bc.test("<"+a.nodeName)?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!_.test(k))k=b.createTextNode(k);else{k=k.replace(Y,"<$1></$2>");var l=(Z.exec(k)||["",""])[1].toLowerCase(),m=bg[l]||bg._default,n=m[0],o=b.createElement("div");b===c?bh.appendChild(o):U(b).appendChild(o),o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=$.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]==="<table>"&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&X.test(k)&&o.insertBefore(b.createTextNode(X.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i<r;i++)bn(k[i]);else bn(k);k.nodeType?h.push(k):h=f.merge(h,k)}if(d){g=function(a){return!a.type||be.test(a.type)};for(j=0;h[j];j++)if(e&&f.nodeName(h[j],"script")&&(!h[j].type||h[j].type.toLowerCase()==="text/javascript"))e.push(h[j].parentNode?h[j].parentNode.removeChild(h[j]):h[j]);else{if(h[j].nodeType===1){var s=f.grep(h[j].getElementsByTagName("script"),g);h.splice.apply(h,[j+1,0].concat(s))}d.appendChild(h[j])}}return h},cleanData:function(a){var b,c,d=f.cache,e=f.event.special,g=f.support.deleteExpando;for(var h=0,i;(i=a[h])!=null;h++){if(i.nodeName&&f.noData[i.nodeName.toLowerCase()])continue;c=i[f.expando];if(c){b=d[c];if(b&&b.events){for(var j in b.events)e[j]?f.event.remove(i,j):f.removeEvent(i,j,b.handle);b.handle&&(b.handle.elem=null)}g?delete i[f.expando]:i.removeAttribute&&i.removeAttribute(f.expando),delete d[c]}}}});var bq=/alpha\([^)]*\)/i,br=/opacity=([^)]*)/,bs=/([A-Z]|^ms)/g,bt=/^-?\d+(?:px)?$/i,bu=/^-?\d/,bv=/^([\-+])=([\-+.\de]+)/,bw={position:"absolute",visibility:"hidden",display:"block"},bx=["Left","Right"],by=["Top","Bottom"],bz,bA,bB;f.fn.css=function(a,c){if(arguments.length===2&&c===b)return this;return f.access(this,a,c,!0,function(a,c,d){return d!==b?f.style(a,c,d):f.css(a,c)})},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bz(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":f.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&"get"in k&&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d,h==="string"&&(g=bv.exec(d))&&(d=+(g[1]+1)*+g[2]+parseFloat(f.css(a,c)),h="number");if(d==null||h==="number"&&isNaN(d))return;h==="number"&&!f.cssNumber[i]&&(d+="px");if(!k||!("set"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c==="cssFloat"&&(c="float");if(g&&"get"in g&&(e=g.get(a,!0,d))!==b)return e;if(bz)return bz(a,c)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]}}),f.curCSS=f.css,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){var e;if(c){if(a.offsetWidth!==0)return bC(a,b,d);f.swap(a,bw,function(){e=bC(a,b,d)});return e}},set:function(a,b){if(!bt.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return br.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bq,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bq.test(g)?g.replace(bq,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bz(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,b){var c,d,e;b=b.replace(bs,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b)));return c}),c.documentElement.currentStyle&&(bB=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f===null&&g&&(e=g[b])&&(f=e),!bt.test(f)&&bu.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f||0,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),bz=bA||bB,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bD=/%20/g,bE=/\[\]$/,bF=/\r?\n/g,bG=/#.*$/,bH=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bI=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bJ=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bK=/^(?:GET|HEAD)$/,bL=/^\/\//,bM=/\?/,bN=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bO=/^(?:select|textarea)/i,bP=/\s+/,bQ=/([?&])_=[^&]*/,bR=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bS=f.fn.load,bT={},bU={},bV,bW,bX=["*/"]+["*"];try{bV=e.href}catch(bY){bV=c.createElement("a"),bV.href="",bV=bV.href}bW=bR.exec(bV.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bS)return bS.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("<div>").append(c.replace(bN,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bO.test(this.nodeName)||bI.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bF,"\r\n")}}):{name:b.name,value:c.replace(bF,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.on(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?b_(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b_(a,b);return a},ajaxSettings:{url:bV,isLocal:bJ.test(bW[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bX},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bZ(bT),ajaxTransport:bZ(bU),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?cb(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=cc(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bH.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bG,"").replace(bL,bW[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bP),d.crossDomain==null&&(r=bR.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bW[1]&&r[2]==bW[2]&&(r[3]||(r[1]==="http:"?80:443))==(bW[3]||(bW[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),b$(bT,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bK.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bM.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bQ,"$1_="+x);d.url=y+(y===d.url?(bM.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bX+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=b$(bU,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){if(s<2)w(-1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)ca(g,a[g],c,e);return d.join("&").replace(bD,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cd=f.now(),ce=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cd++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ce.test(b.url)||e&&ce.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ce,l),b.url===j&&(e&&(k=k.replace(ce,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cf=a.ActiveXObject?function(){for(var a in ch)ch[a](0,1)}:!1,cg=0,ch;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ci()||cj()}:ci,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cf&&delete ch[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cg,cf&&(ch||(ch={},f(a).unload(cf)),ch[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var ck={},cl,cm,cn=/^(?:toggle|show|hide)$/,co=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cp,cq=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cr;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cu("show",3),a,b,c);for(var g=0,h=this.length;g<h;g++)d=this[g],d.style&&(e=d.style.display,!f._data(d,"olddisplay")&&e==="none"&&(e=d.style.display=""),e===""&&f.css(d,"display")==="none"&&f._data(d,"olddisplay",cv(d.nodeName)));for(g=0;g<h;g++){d=this[g];if(d.style){e=d.style.display;if(e===""||e==="none")d.style.display=f._data(d,"olddisplay")||""}}return this},hide:function(a,b,c){if(a||a===0)return this.animate(cu("hide",3),a,b,c);var d,e,g=0,h=this.length;for(;g<h;g++)d=this[g],d.style&&(e=f.css(d,"display"),e!=="none"&&!f._data(d,"olddisplay")&&f._data(d,"olddisplay",e));for(g=0;g<h;g++)this[g].style&&(this[g].style.display="none");return this},_toggle:f.fn.toggle,toggle:function(a,b,c){var d=typeof a=="boolean";f.isFunction(a)&&f.isFunction(b)?this._toggle.apply(this,arguments):a==null||d?this.each(function(){var b=d?a:f(this).is(":hidden");f(this)[b?"show":"hide"]()}):this.animate(cu("toggle",3),a,b,c);return this},fadeTo:function(a,b,c,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){function g(){e.queue===!1&&f._mark(this);var b=f.extend({},e),c=this.nodeType===1,d=c&&f(this).is(":hidden"),g,h,i,j,k,l,m,n,o;b.animatedProperties={};for(i in a){g=f.camelCase(i),i!==g&&(a[g]=a[i],delete a[i]),h=a[g],f.isArray(h)?(b.animatedProperties[g]=h[1],h=a[g]=h[0]):b.animatedProperties[g]=b.specialEasing&&b.specialEasing[g]||b.easing||"swing";if(h==="hide"&&d||h==="show"&&!d)return b.complete.call(this);c&&(g==="height"||g==="width")&&(b.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY],f.css(this,"display")==="inline"&&f.css(this,"float")==="none"&&(!f.support.inlineBlockNeedsLayout||cv(this.nodeName)==="inline"?this.style.display="inline-block":this.style.zoom=1))}b.overflow!=null&&(this.style.overflow="hidden");for(i in a)j=new f.fx(this,b,i),h=a[i],cn.test(h)?(o=f._data(this,"toggle"+i)||(h==="toggle"?d?"show":"hide":0),o?(f._data(this,"toggle"+i,o==="show"?"hide":"show"),j[o]()):j[h]()):(k=co.exec(h),l=j.cur(),k?(m=parseFloat(k[2]),n=k[3]||(f.cssNumber[i]?"":"px"),n!=="px"&&(f.style(this,i,(m||1)+n),l=(m||1)/j.cur()*l,f.style(this,i,l+n)),k[1]&&(m=(k[1]==="-="?-1:1)*m+l),j.custom(l,m,n)):j.custom(l,h,""));return!0}var e=f.speed(b,c,d);if(f.isEmptyObject(a))return this.each(e.complete,[!1]);a=f.extend({},a);return e.queue===!1?this.each(g):this.queue(e.queue,g)},stop:function(a,c,d){typeof a!="string"&&(d=c,c=a,a=b),c&&a!==!1&&this.queue(a||"fx",[]);return this.each(function(){function h(a,b,c){var e=b[c];f.removeData(a,c,!0),e.stop(d)}var b,c=!1,e=f.timers,g=f._data(this);d||f._unmark(!0,this);if(a==null)for(b in g)g[b]&&g[b].stop&&b.indexOf(".run")===b.length-4&&h(this,g,b);else g[b=a+".run"]&&g[b].stop&&h(this,g,b);for(b=e.length;b--;)e[b].elem===this&&(a==null||e[b].queue===a)&&(d?e[b](!0):e[b].saveState(),c=!0,e.splice(b,1));(!d||!c)&&f.dequeue(this,a)})}}),f.each({slideDown:cu("show",1),slideUp:cu("hide",1),slideToggle:cu("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){f.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),f.extend({speed:function(a,b,c){var d=a&&typeof a=="object"?f.extend({},a):{complete:c||!c&&b||f.isFunction(a)&&a,duration:a,easing:c&&b||b&&!f.isFunction(b)&&b};d.duration=f.fx.off?0:typeof d.duration=="number"?d.duration:d.duration in f.fx.speeds?f.fx.speeds[d.duration]:f.fx.speeds._default;if(d.queue==null||d.queue===!0)d.queue="fx";d.old=d.complete,d.complete=function(a){f.isFunction(d.old)&&d.old.call(this),d.queue?f.dequeue(this,d.queue):a!==!1&&f._unmark(this)};return d},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig=b.orig||{}}}),f.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(f.fx.step[this.prop]||f.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=f.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,c,d){function h(a){return e.step(a)}var e=this,g=f.fx;this.startTime=cr||cs(),this.end=c,this.now=this.start=a,this.pos=this.state=0,this.unit=d||this.unit||(f.cssNumber[this.prop]?"":"px"),h.queue=this.options.queue,h.elem=this.elem,h.saveState=function(){e.options.hide&&f._data(e.elem,"fxshow"+e.prop)===b&&f._data(e.elem,"fxshow"+e.prop,e.start)},h()&&f.timers.push(h)&&!cp&&(cp=setInterval(g.tick,g.interval))},show:function(){var a=f._data(this.elem,"fxshow"+this.prop);this.options.orig[this.prop]=a||f.style(this.elem,this.prop),this.options.show=!0,a!==b?this.custom(this.cur(),a):this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),f(this.elem).show()},hide:function(){this.options.orig[this.prop]=f._data(this.elem,"fxshow"+this.prop)||f.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b,c,d,e=cr||cs(),g=!0,h=this.elem,i=this.options;if(a||e>=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c<b.length;c++)a=b[c],!a()&&b[c]===a&&b.splice(c--,1);b.length||f.fx.stop()},interval:13,stop:function(){clearInterval(cp),cp=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){f.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=a.now+a.unit:a.elem[a.prop]=a.now}}}),f.each(["width","height"],function(a,b){f.fx.step[b]=function(a){f.style(a.elem,b,Math.max(0,a.now)+a.unit)}}),f.expr&&f.expr.filters&&(f.expr.filters.animated=function(a){return f.grep(f.timers,function(b){return a===b.elem}).length});var cw=/^t(?:able|d|h)$/i,cx=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?f.fn.offset=function(a){var b=this[0],c;if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);try{c=b.getBoundingClientRect()}catch(d){}var e=b.ownerDocument,g=e.documentElement;if(!c||!f.contains(g,b))return c?{top:c.top,left:c.left}:{top:0,left:0};var h=e.body,i=cy(e),j=g.clientTop||h.clientTop||0,k=g.clientLeft||h.clientLeft||0,l=i.pageYOffset||f.support.boxModel&&g.scrollTop||h.scrollTop,m=i.pageXOffset||f.support.boxModel&&g.scrollLeft||h.scrollLeft,n=c.top+l-j,o=c.left+m-k;return{top:n,left:o}}:f.fn.offset=function(a){var b=this[0];if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);var c,d=b.offsetParent,e=b,g=b.ownerDocument,h=g.documentElement,i=g.body,j=g.defaultView,k=j?j.getComputedStyle(b,null):b.currentStyle,l=b.offsetTop,m=b.offsetLeft;while((b=b.parentNode)&&b!==i&&b!==h){if(f.support.fixedPosition&&k.position==="fixed")break;c=j?j.getComputedStyle(b,null):b.currentStyle,l-=b.scrollTop,m-=b.scrollLeft,b===d&&(l+=b.offsetTop,m+=b.offsetLeft,f.support.doesNotAddBorder&&(!f.support.doesAddBorderForTableAndCells||!cw.test(b.nodeName))&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),e=d,d=b.offsetParent),f.support.subtractsBorderForOverflowNotVisible&&c.overflow!=="visible"&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),k=c}if(k.position==="relative"||k.position==="static")l+=i.offsetTop,m+=i.offsetLeft;f.support.fixedPosition&&k.position==="fixed"&&(l+=Math.max(h.scrollTop,i.scrollTop),m+=Math.max(h.scrollLeft,i.scrollLeft));return{top:l,left:m}},f.offset={bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.support.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cy(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cy(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,d,"padding")):this[d]():null},f.fn["outer"+c]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,d,a?"margin":"border")):this[d]():null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c],h=e.document.body;return e.document.compatMode==="CSS1Compat"&&g||h&&h["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var i=f.css(e,d),j=parseFloat(i);return f.isNumeric(j)?j:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return f})})(window); | |
0 | 5 | \ No newline at end of file | ... | ... |
test-output/junitreports/TEST-com.essa.testSuite.Test_Login.xml
0 → 100644
1 | +++ a/test-output/junitreports/TEST-com.essa.testSuite.Test_Login.xml | |
... | ... | @@ -0,0 +1,6 @@ |
1 | +<?xml version="1.0" encoding="UTF-8"?> | |
2 | +<!-- Generated by org.testng.reporters.JUnitReportReporter --> | |
3 | +<testsuite skipped="0" hostname="DESKTOP-NIGE62D" name="com.essa.testSuite.Test_Login" tests="2" failures="0" timestamp="10 四月 2018 10:27:19 GMT" time="18.800" errors="0"> | |
4 | + <testcase name="login" time="9.690" classname="com.essa.testSuite.Test_Login"/> | |
5 | + <testcase name="login" time="9.110" classname="com.essa.testSuite.Test_Login"/> | |
6 | +</testsuite> <!-- com.essa.testSuite.Test_Login --> | ... | ... |
352 Bytes
1 | +++ a/test-output/old/bpms-test/classes.html | |
... | ... | @@ -0,0 +1,36 @@ |
1 | +<table border='1'> | |
2 | +<tr> | |
3 | +<th>Class name</th> | |
4 | +<th>Method name</th> | |
5 | +<th>Groups</th> | |
6 | +</tr><tr> | |
7 | +<td>com.essa.testSuite.Test_Login</td> | |
8 | +<td> </td><td> </td></tr> | |
9 | +<tr> | |
10 | +<td align='center' colspan='3'>@Test</td> | |
11 | +</tr> | |
12 | +<tr> | |
13 | +<td> </td> | |
14 | +<td>login</td> | |
15 | +<td> </td></tr> | |
16 | +<tr> | |
17 | +<td align='center' colspan='3'>@BeforeClass</td> | |
18 | +</tr> | |
19 | +<tr> | |
20 | +<td> </td> | |
21 | +<td>setUp</td> | |
22 | +<td> </td></tr> | |
23 | +<tr> | |
24 | +<td align='center' colspan='3'>@BeforeMethod</td> | |
25 | +</tr> | |
26 | +<tr> | |
27 | +<td align='center' colspan='3'>@AfterMethod</td> | |
28 | +</tr> | |
29 | +<tr> | |
30 | +<td align='center' colspan='3'>@AfterClass</td> | |
31 | +</tr> | |
32 | +<tr> | |
33 | +<td> </td> | |
34 | +<td>tearDown</td> | |
35 | +<td> </td></tr> | |
36 | +</table> | ... | ... |
test-output/old/bpms-test/methods-alphabetical.html
0 → 100644
1 | +++ a/test-output/old/bpms-test/methods-alphabetical.html | |
... | ... | @@ -0,0 +1,12 @@ |
1 | +<h2>Methods run, sorted chronologically</h2><h3>>> means before, << means after</h3><p/><br/><em>bpms-test</em><p/><small><i>(Hover the method name to see the test class name)</i></small><p/> | |
2 | +<table border="1"> | |
3 | +<tr><th>Time</th><th>Delta (ms)</th><th>Suite<br>configuration</th><th>Test<br>configuration</th><th>Class<br>configuration</th><th>Groups<br>configuration</th><th>Method<br>configuration</th><th>Test<br>method</th><th>Thread</th><th>Instances</th></tr> | |
4 | +<tr bgcolor="99f37e"> <td>18/04/10 16:09:00</td> <td>0</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="Test_Login.login(java.lang.String, java.lang.String)[pri:0, instance:com.essa.testSuite.Test_Login@17cd7a0]">login</td> | |
5 | + <td>main@21116517</td> <td></td> </tr> | |
6 | +<tr bgcolor="99f37e"> <td>18/04/10 16:09:05</td> <td>5158</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="Test_Login.login(java.lang.String, java.lang.String)[pri:0, instance:com.essa.testSuite.Test_Login@17cd7a0]">login</td> | |
7 | + <td>main@21116517</td> <td></td> </tr> | |
8 | +<tr bgcolor="99f37e"> <td>18/04/10 16:08:50</td> <td>-9795</td> <td> </td><td> </td><td title=">>Test_Login.setUp()[pri:0, instance:com.essa.testSuite.Test_Login@17cd7a0]">>>setUp</td> | |
9 | +<td> </td><td> </td><td> </td> <td>main@21116517</td> <td></td> </tr> | |
10 | +<tr bgcolor="99f37e"> <td>18/04/10 16:09:10</td> <td>9512</td> <td> </td><td> </td><td title="<<Test_Login.tearDown()[pri:0, instance:com.essa.testSuite.Test_Login@17cd7a0]"><<tearDown</td> | |
11 | +<td> </td><td> </td><td> </td> <td>main@21116517</td> <td></td> </tr> | |
12 | +</table> | ... | ... |
1 | +++ a/test-output/old/bpms-test/methods.html | |
... | ... | @@ -0,0 +1,12 @@ |
1 | +<h2>Methods run, sorted chronologically</h2><h3>>> means before, << means after</h3><p/><br/><em>bpms-test</em><p/><small><i>(Hover the method name to see the test class name)</i></small><p/> | |
2 | +<table border="1"> | |
3 | +<tr><th>Time</th><th>Delta (ms)</th><th>Suite<br>configuration</th><th>Test<br>configuration</th><th>Class<br>configuration</th><th>Groups<br>configuration</th><th>Method<br>configuration</th><th>Test<br>method</th><th>Thread</th><th>Instances</th></tr> | |
4 | +<tr bgcolor="99f37e"> <td>18/04/10 16:08:50</td> <td>0</td> <td> </td><td> </td><td title=">>Test_Login.setUp()[pri:0, instance:com.essa.testSuite.Test_Login@17cd7a0]">>>setUp</td> | |
5 | +<td> </td><td> </td><td> </td> <td>main@21116517</td> <td></td> </tr> | |
6 | +<tr bgcolor="99f37e"> <td>18/04/10 16:09:00</td> <td>9795</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="Test_Login.login(java.lang.String, java.lang.String)[pri:0, instance:com.essa.testSuite.Test_Login@17cd7a0]">login</td> | |
7 | + <td>main@21116517</td> <td></td> </tr> | |
8 | +<tr bgcolor="99f37e"> <td>18/04/10 16:09:05</td> <td>14953</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="Test_Login.login(java.lang.String, java.lang.String)[pri:0, instance:com.essa.testSuite.Test_Login@17cd7a0]">login</td> | |
9 | + <td>main@21116517</td> <td></td> </tr> | |
10 | +<tr bgcolor="99f37e"> <td>18/04/10 16:09:10</td> <td>19307</td> <td> </td><td> </td><td title="<<Test_Login.tearDown()[pri:0, instance:com.essa.testSuite.Test_Login@17cd7a0]"><<tearDown</td> | |
11 | +<td> </td><td> </td><td> </td> <td>main@21116517</td> <td></td> </tr> | |
12 | +</table> | ... | ... |
1 | +++ a/test-output/old/bpms-test/testng.xml.html | |
... | ... | @@ -0,0 +1 @@ |
1 | +<html><head><title>testng.xml for bpms-test</title></head><body><tt><?xml version="1.0" encoding="UTF-8"?> <br/><!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <br/><suite guice-stage="DEVELOPMENT" name="bpms-test"> <br/> <listeners> <br/> <listener class-name="com.essa.framework.ListenerSuite"/> <br/> </listeners> <br/> <test thread-count="5" name="login"> <br/> <classes> <br/> <class name="com.essa.testSuite.Test_Login"/> <br/> </classes> <br/> </test> <!-- login --> <br/></suite> <!-- bpms-test --> <br/></tt></body></html> | |
0 | 2 | \ No newline at end of file | ... | ... |
1 | +++ a/test-output/old/bpms-test/toc.html | |
... | ... | @@ -0,0 +1,30 @@ |
1 | +<html> | |
2 | +<head> | |
3 | +<title>Results for bpms-test</title> | |
4 | +<link href="../testng.css" rel="stylesheet" type="text/css" /> | |
5 | +<link href="../my-testng.css" rel="stylesheet" type="text/css" /> | |
6 | +</head> | |
7 | +<body> | |
8 | +<h3><p align="center">Results for<br/><em>bpms-test</em></p></h3> | |
9 | +<table border='1' width='100%'> | |
10 | +<tr valign='top'> | |
11 | +<td>1 test</td> | |
12 | +<td><a target='mainFrame' href='classes.html'>1 class</a></td> | |
13 | +<td>1 method:<br/> | |
14 | + <a target='mainFrame' href='methods.html'>chronological</a><br/> | |
15 | + <a target='mainFrame' href='methods-alphabetical.html'>alphabetical</a><br/> | |
16 | + <a target='mainFrame' href='methods-not-run.html'>not run (0)</a></td> | |
17 | +</tr> | |
18 | +<tr> | |
19 | +<td><a target='mainFrame' href='groups.html'>0 group</a></td> | |
20 | +<td><a target='mainFrame' href='reporter-output.html'>reporter output</a></td> | |
21 | +<td><a target='mainFrame' href='testng.xml.html'>testng.xml</a></td> | |
22 | +</tr></table> | |
23 | +<table width='100%' class='test-passed'> | |
24 | +<tr><td> | |
25 | +<table style='width: 100%'><tr><td valign='top'>login (2/0/0)</td><td valign='top' align='right'> | |
26 | + <a href='login.html' target='mainFrame'>Results</a> | |
27 | +</td></tr></table> | |
28 | +</td></tr><p/> | |
29 | +</table> | |
30 | +</body></html> | |
0 | 31 | \ No newline at end of file | ... | ... |
1 | +++ a/test-output/old/bpms自动化测试/classes.html | |
... | ... | @@ -0,0 +1,36 @@ |
1 | +<table border='1'> | |
2 | +<tr> | |
3 | +<th>Class name</th> | |
4 | +<th>Method name</th> | |
5 | +<th>Groups</th> | |
6 | +</tr><tr> | |
7 | +<td>com.essa.testSuite.Test_Login</td> | |
8 | +<td> </td><td> </td></tr> | |
9 | +<tr> | |
10 | +<td align='center' colspan='3'>@Test</td> | |
11 | +</tr> | |
12 | +<tr> | |
13 | +<td> </td> | |
14 | +<td>login</td> | |
15 | +<td> </td></tr> | |
16 | +<tr> | |
17 | +<td align='center' colspan='3'>@BeforeClass</td> | |
18 | +</tr> | |
19 | +<tr> | |
20 | +<td> </td> | |
21 | +<td>setUp</td> | |
22 | +<td> </td></tr> | |
23 | +<tr> | |
24 | +<td align='center' colspan='3'>@BeforeMethod</td> | |
25 | +</tr> | |
26 | +<tr> | |
27 | +<td align='center' colspan='3'>@AfterMethod</td> | |
28 | +</tr> | |
29 | +<tr> | |
30 | +<td align='center' colspan='3'>@AfterClass</td> | |
31 | +</tr> | |
32 | +<tr> | |
33 | +<td> </td> | |
34 | +<td>tearDown</td> | |
35 | +<td> </td></tr> | |
36 | +</table> | ... | ... |
test-output/old/bpms自动化测试/methods-alphabetical.html
0 → 100644
1 | +++ a/test-output/old/bpms自动化测试/methods-alphabetical.html | |
... | ... | @@ -0,0 +1,12 @@ |
1 | +<h2>Methods run, sorted chronologically</h2><h3>>> means before, << means after</h3><p/><br/><em>bpms×Ô¶¯»¯²âÊÔ</em><p/><small><i>(Hover the method name to see the test class name)</i></small><p/> | |
2 | +<table border="1"> | |
3 | +<tr><th>Time</th><th>Delta (ms)</th><th>Suite<br>configuration</th><th>Test<br>configuration</th><th>Class<br>configuration</th><th>Groups<br>configuration</th><th>Method<br>configuration</th><th>Test<br>method</th><th>Thread</th><th>Instances</th></tr> | |
4 | +<tr bgcolor="8f92ff"> <td>18/04/10 18:26:56</td> <td>0</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="Test_Login.login(java.lang.String, java.lang.String)[pri:0, instance:com.essa.testSuite.Test_Login@83b407]">login</td> | |
5 | + <td>main@18955154</td> <td></td> </tr> | |
6 | +<tr bgcolor="8f92ff"> <td>18/04/10 18:27:06</td> <td>9694</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="Test_Login.login(java.lang.String, java.lang.String)[pri:0, instance:com.essa.testSuite.Test_Login@83b407]">login</td> | |
7 | + <td>main@18955154</td> <td></td> </tr> | |
8 | +<tr bgcolor="8f92ff"> <td>18/04/10 18:26:41</td> <td>-14751</td> <td> </td><td> </td><td title=">>Test_Login.setUp()[pri:0, instance:com.essa.testSuite.Test_Login@83b407]">>>setUp</td> | |
9 | +<td> </td><td> </td><td> </td> <td>main@18955154</td> <td></td> </tr> | |
10 | +<tr bgcolor="8f92ff"> <td>18/04/10 18:27:15</td> <td>18811</td> <td> </td><td> </td><td title="<<Test_Login.tearDown()[pri:0, instance:com.essa.testSuite.Test_Login@83b407]"><<tearDown</td> | |
11 | +<td> </td><td> </td><td> </td> <td>main@18955154</td> <td></td> </tr> | |
12 | +</table> | ... | ... |
1 | +++ a/test-output/old/bpms自动化测试/methods.html | |
... | ... | @@ -0,0 +1,12 @@ |
1 | +<h2>Methods run, sorted chronologically</h2><h3>>> means before, << means after</h3><p/><br/><em>bpms×Ô¶¯»¯²âÊÔ</em><p/><small><i>(Hover the method name to see the test class name)</i></small><p/> | |
2 | +<table border="1"> | |
3 | +<tr><th>Time</th><th>Delta (ms)</th><th>Suite<br>configuration</th><th>Test<br>configuration</th><th>Class<br>configuration</th><th>Groups<br>configuration</th><th>Method<br>configuration</th><th>Test<br>method</th><th>Thread</th><th>Instances</th></tr> | |
4 | +<tr bgcolor="8f92ff"> <td>18/04/10 18:26:41</td> <td>0</td> <td> </td><td> </td><td title=">>Test_Login.setUp()[pri:0, instance:com.essa.testSuite.Test_Login@83b407]">>>setUp</td> | |
5 | +<td> </td><td> </td><td> </td> <td>main@18955154</td> <td></td> </tr> | |
6 | +<tr bgcolor="8f92ff"> <td>18/04/10 18:26:56</td> <td>14751</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="Test_Login.login(java.lang.String, java.lang.String)[pri:0, instance:com.essa.testSuite.Test_Login@83b407]">login</td> | |
7 | + <td>main@18955154</td> <td></td> </tr> | |
8 | +<tr bgcolor="8f92ff"> <td>18/04/10 18:27:06</td> <td>24445</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="Test_Login.login(java.lang.String, java.lang.String)[pri:0, instance:com.essa.testSuite.Test_Login@83b407]">login</td> | |
9 | + <td>main@18955154</td> <td></td> </tr> | |
10 | +<tr bgcolor="8f92ff"> <td>18/04/10 18:27:15</td> <td>33562</td> <td> </td><td> </td><td title="<<Test_Login.tearDown()[pri:0, instance:com.essa.testSuite.Test_Login@83b407]"><<tearDown</td> | |
11 | +<td> </td><td> </td><td> </td> <td>main@18955154</td> <td></td> </tr> | |
12 | +</table> | ... | ... |
1 | +++ a/test-output/old/bpms鑷姩鍖栨祴璇/testng.xml.html | |
... | ... | @@ -0,0 +1 @@ |
1 | +<html><head><title>testng.xml for bpms自动化测试</title></head><body><tt><?xml version="1.0" encoding="UTF-8"?> <br/><!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <br/><suite guice-stage="DEVELOPMENT" name="bpms自动化测试"> <br/> <listeners> <br/> <listener class-name="com.essa.framework.ListenerSuite"/> <br/> </listeners> <br/> <test thread-count="5" name="login"> <br/> <classes> <br/> <class name="com.essa.testSuite.Test_Login"/> <br/> </classes> <br/> </test> <!-- login --> <br/></suite> <!-- bpms自动化测试 --> <br/></tt></body></html> | |
0 | 2 | \ No newline at end of file | ... | ... |
1 | +++ a/test-output/old/bpms自动化测试/toc.html | |
... | ... | @@ -0,0 +1,30 @@ |
1 | +<html> | |
2 | +<head> | |
3 | +<title>Results for bpms×Ô¶¯»¯²âÊÔ</title> | |
4 | +<link href="../testng.css" rel="stylesheet" type="text/css" /> | |
5 | +<link href="../my-testng.css" rel="stylesheet" type="text/css" /> | |
6 | +</head> | |
7 | +<body> | |
8 | +<h3><p align="center">Results for<br/><em>bpms×Ô¶¯»¯²âÊÔ</em></p></h3> | |
9 | +<table border='1' width='100%'> | |
10 | +<tr valign='top'> | |
11 | +<td>1 test</td> | |
12 | +<td><a target='mainFrame' href='classes.html'>1 class</a></td> | |
13 | +<td>1 method:<br/> | |
14 | + <a target='mainFrame' href='methods.html'>chronological</a><br/> | |
15 | + <a target='mainFrame' href='methods-alphabetical.html'>alphabetical</a><br/> | |
16 | + <a target='mainFrame' href='methods-not-run.html'>not run (0)</a></td> | |
17 | +</tr> | |
18 | +<tr> | |
19 | +<td><a target='mainFrame' href='groups.html'>0 group</a></td> | |
20 | +<td><a target='mainFrame' href='reporter-output.html'>reporter output</a></td> | |
21 | +<td><a target='mainFrame' href='testng.xml.html'>testng.xml</a></td> | |
22 | +</tr></table> | |
23 | +<table width='100%' class='test-passed'> | |
24 | +<tr><td> | |
25 | +<table style='width: 100%'><tr><td valign='top'>login (2/0/0)</td><td valign='top' align='right'> | |
26 | + <a href='login.html' target='mainFrame'>Results</a> | |
27 | +</td></tr></table> | |
28 | +</td></tr><p/> | |
29 | +</table> | |
30 | +</body></html> | |
0 | 31 | \ No newline at end of file | ... | ... |
1 | +++ a/test-output/old/bpms自动化测试报告/classes.html | |
... | ... | @@ -0,0 +1,36 @@ |
1 | +<table border='1'> | |
2 | +<tr> | |
3 | +<th>Class name</th> | |
4 | +<th>Method name</th> | |
5 | +<th>Groups</th> | |
6 | +</tr><tr> | |
7 | +<td>com.essa.testSuite.Test_Login</td> | |
8 | +<td> </td><td> </td></tr> | |
9 | +<tr> | |
10 | +<td align='center' colspan='3'>@Test</td> | |
11 | +</tr> | |
12 | +<tr> | |
13 | +<td> </td> | |
14 | +<td>login</td> | |
15 | +<td> </td></tr> | |
16 | +<tr> | |
17 | +<td align='center' colspan='3'>@BeforeClass</td> | |
18 | +</tr> | |
19 | +<tr> | |
20 | +<td> </td> | |
21 | +<td>setUp</td> | |
22 | +<td> </td></tr> | |
23 | +<tr> | |
24 | +<td align='center' colspan='3'>@BeforeMethod</td> | |
25 | +</tr> | |
26 | +<tr> | |
27 | +<td align='center' colspan='3'>@AfterMethod</td> | |
28 | +</tr> | |
29 | +<tr> | |
30 | +<td align='center' colspan='3'>@AfterClass</td> | |
31 | +</tr> | |
32 | +<tr> | |
33 | +<td> </td> | |
34 | +<td>tearDown</td> | |
35 | +<td> </td></tr> | |
36 | +</table> | ... | ... |
1 | +++ a/test-output/old/bpms自动化测试报告/index.html | |
... | ... | @@ -0,0 +1,6 @@ |
1 | +<html><head><title>Results for bpms×Ô¶¯»¯²âÊÔ±¨¸æ</title></head> | |
2 | +<frameset cols="26%,74%"> | |
3 | +<frame src="toc.html" name="navFrame"> | |
4 | +<frame src="main.html" name="mainFrame"> | |
5 | +</frameset> | |
6 | +</html> | ... | ... |
test-output/old/bpms自动化测试报告/methods-alphabetical.html
0 → 100644
1 | +++ a/test-output/old/bpms自动化测试报告/methods-alphabetical.html | |
... | ... | @@ -0,0 +1,12 @@ |
1 | +<h2>Methods run, sorted chronologically</h2><h3>>> means before, << means after</h3><p/><br/><em>bpms×Ô¶¯»¯²âÊÔ±¨¸æ</em><p/><small><i>(Hover the method name to see the test class name)</i></small><p/> | |
2 | +<table border="1"> | |
3 | +<tr><th>Time</th><th>Delta (ms)</th><th>Suite<br>configuration</th><th>Test<br>configuration</th><th>Class<br>configuration</th><th>Groups<br>configuration</th><th>Method<br>configuration</th><th>Test<br>method</th><th>Thread</th><th>Instances</th></tr> | |
4 | +<tr bgcolor="99f37e"> <td>18/04/10 16:15:56</td> <td>0</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="Test_Login.login(java.lang.String, java.lang.String)[pri:0, instance:com.essa.testSuite.Test_Login@17cd7a0]">login</td> | |
5 | + <td>main@21116517</td> <td></td> </tr> | |
6 | +<tr bgcolor="99f37e"> <td>18/04/10 16:16:01</td> <td>5474</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="Test_Login.login(java.lang.String, java.lang.String)[pri:0, instance:com.essa.testSuite.Test_Login@17cd7a0]">login</td> | |
7 | + <td>main@21116517</td> <td></td> </tr> | |
8 | +<tr bgcolor="99f37e"> <td>18/04/10 16:15:46</td> <td>-10016</td> <td> </td><td> </td><td title=">>Test_Login.setUp()[pri:0, instance:com.essa.testSuite.Test_Login@17cd7a0]">>>setUp</td> | |
9 | +<td> </td><td> </td><td> </td> <td>main@21116517</td> <td></td> </tr> | |
10 | +<tr bgcolor="99f37e"> <td>18/04/10 16:16:06</td> <td>10366</td> <td> </td><td> </td><td title="<<Test_Login.tearDown()[pri:0, instance:com.essa.testSuite.Test_Login@17cd7a0]"><<tearDown</td> | |
11 | +<td> </td><td> </td><td> </td> <td>main@21116517</td> <td></td> </tr> | |
12 | +</table> | ... | ... |
1 | +++ a/test-output/old/bpms自动化测试报告/methods.html | |
... | ... | @@ -0,0 +1,12 @@ |
1 | +<h2>Methods run, sorted chronologically</h2><h3>>> means before, << means after</h3><p/><br/><em>bpms×Ô¶¯»¯²âÊÔ±¨¸æ</em><p/><small><i>(Hover the method name to see the test class name)</i></small><p/> | |
2 | +<table border="1"> | |
3 | +<tr><th>Time</th><th>Delta (ms)</th><th>Suite<br>configuration</th><th>Test<br>configuration</th><th>Class<br>configuration</th><th>Groups<br>configuration</th><th>Method<br>configuration</th><th>Test<br>method</th><th>Thread</th><th>Instances</th></tr> | |
4 | +<tr bgcolor="99f37e"> <td>18/04/10 16:15:46</td> <td>0</td> <td> </td><td> </td><td title=">>Test_Login.setUp()[pri:0, instance:com.essa.testSuite.Test_Login@17cd7a0]">>>setUp</td> | |
5 | +<td> </td><td> </td><td> </td> <td>main@21116517</td> <td></td> </tr> | |
6 | +<tr bgcolor="99f37e"> <td>18/04/10 16:15:56</td> <td>10016</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="Test_Login.login(java.lang.String, java.lang.String)[pri:0, instance:com.essa.testSuite.Test_Login@17cd7a0]">login</td> | |
7 | + <td>main@21116517</td> <td></td> </tr> | |
8 | +<tr bgcolor="99f37e"> <td>18/04/10 16:16:01</td> <td>15490</td> <td> </td><td> </td><td> </td><td> </td><td> </td><td title="Test_Login.login(java.lang.String, java.lang.String)[pri:0, instance:com.essa.testSuite.Test_Login@17cd7a0]">login</td> | |
9 | + <td>main@21116517</td> <td></td> </tr> | |
10 | +<tr bgcolor="99f37e"> <td>18/04/10 16:16:06</td> <td>20382</td> <td> </td><td> </td><td title="<<Test_Login.tearDown()[pri:0, instance:com.essa.testSuite.Test_Login@17cd7a0]"><<tearDown</td> | |
11 | +<td> </td><td> </td><td> </td> <td>main@21116517</td> <td></td> </tr> | |
12 | +</table> | ... | ... |
1 | +++ a/test-output/old/bpms鑷姩鍖栨祴璇曟姤鍛/testng.xml.html | |
... | ... | @@ -0,0 +1 @@ |
1 | +<html><head><title>testng.xml for bpms自动化测试报告</title></head><body><tt><?xml version="1.0" encoding="UTF-8"?> <br/><!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <br/><suite guice-stage="DEVELOPMENT" name="bpms自动化测试报告"> <br/> <listeners> <br/> <listener class-name="com.essa.framework.ListenerSuite"/> <br/> </listeners> <br/> <test thread-count="5" name="login"> <br/> <classes> <br/> <class name="com.essa.testSuite.Test_Login"/> <br/> </classes> <br/> </test> <!-- login --> <br/></suite> <!-- bpms自动化测试报告 --> <br/></tt></body></html> | |
0 | 2 | \ No newline at end of file | ... | ... |
1 | +++ a/test-output/old/bpms鑷姩鍖栨祴璇曟姤鍛/toc.html | |
... | ... | @@ -0,0 +1,30 @@ |
1 | +<html> | |
2 | +<head> | |
3 | +<title>Results for bpms自动化测试报告</title> | |
4 | +<link href="../testng.css" rel="stylesheet" type="text/css" /> | |
5 | +<link href="../my-testng.css" rel="stylesheet" type="text/css" /> | |
6 | +</head> | |
7 | +<body> | |
8 | +<h3><p align="center">Results for<br/><em>bpms自动化测试报告</em></p></h3> | |
9 | +<table border='1' width='100%'> | |
10 | +<tr valign='top'> | |
11 | +<td>1 test</td> | |
12 | +<td><a target='mainFrame' href='classes.html'>1 class</a></td> | |
13 | +<td>1 method:<br/> | |
14 | + <a target='mainFrame' href='methods.html'>chronological</a><br/> | |
15 | + <a target='mainFrame' href='methods-alphabetical.html'>alphabetical</a><br/> | |
16 | + <a target='mainFrame' href='methods-not-run.html'>not run (0)</a></td> | |
17 | +</tr> | |
18 | +<tr> | |
19 | +<td><a target='mainFrame' href='groups.html'>0 group</a></td> | |
20 | +<td><a target='mainFrame' href='reporter-output.html'>reporter output</a></td> | |
21 | +<td><a target='mainFrame' href='testng.xml.html'>testng.xml</a></td> | |
22 | +</tr></table> | |
23 | +<table width='100%' class='test-passed'> | |
24 | +<tr><td> | |
25 | +<table style='width: 100%'><tr><td valign='top'>login (2/0/0)</td><td valign='top' align='right'> | |
26 | + <a href='login.html' target='mainFrame'>Results</a> | |
27 | +</td></tr></table> | |
28 | +</td></tr><p/> | |
29 | +</table> | |
30 | +</body></html> | |
0 | 31 | \ No newline at end of file | ... | ... |
1 | +++ a/test-output/old/index.html | |
... | ... | @@ -0,0 +1,9 @@ |
1 | +<html> | |
2 | +<head><title></title><link href="./testng.css" rel="stylesheet" type="text/css" /> | |
3 | +<link href="./my-testng.css" rel="stylesheet" type="text/css" /> | |
4 | +</head><body> | |
5 | +<h2><p align='center'>Test results</p></h2> | |
6 | +<table border='1' width='100%' class='main-page'><tr><th>Suite</th><th>Passed</th><th>Failed</th><th>Skipped</th><th>testng.xml</th></tr> | |
7 | +<tr align='center' class='invocation-passed'><td><em>Total</em></td><td><em>2</em></td><td><em>0</em></td><td><em>0</em></td><td> </td></tr> | |
8 | +<tr align='center' class='invocation-passed'><td><a href='bpms自动化测试/index.html'>bpms自动化测试</a></td> | |
9 | +<td>2</td><td>0</td><td>0</td><td><a href='bpms自动化测试/testng.xml.html'>Link</a></td></tr></table></body></html> | ... | ... |
1019 Bytes
967 Bytes
1 | +++ a/test-output/testng-reports.css | |
... | ... | @@ -0,0 +1,309 @@ |
1 | +body { | |
2 | + margin: 0px 0px 5px 5px; | |
3 | +} | |
4 | + | |
5 | +ul { | |
6 | + margin: 0px; | |
7 | +} | |
8 | + | |
9 | +li { | |
10 | + list-style-type: none; | |
11 | +} | |
12 | + | |
13 | +a { | |
14 | + text-decoration: none; | |
15 | +} | |
16 | + | |
17 | +a:hover { | |
18 | + text-decoration: underline; | |
19 | +} | |
20 | + | |
21 | +.navigator-selected { | |
22 | + background: #ffa500; | |
23 | +} | |
24 | + | |
25 | +.wrapper { | |
26 | + position: absolute; | |
27 | + top: 60px; | |
28 | + bottom: 0; | |
29 | + left: 400px; | |
30 | + right: 0; | |
31 | + overflow: auto; | |
32 | +} | |
33 | + | |
34 | +.navigator-root { | |
35 | + position: absolute; | |
36 | + top: 60px; | |
37 | + bottom: 0; | |
38 | + left: 0; | |
39 | + width: 400px; | |
40 | + overflow-y: auto; | |
41 | +} | |
42 | + | |
43 | +.suite { | |
44 | + margin: 0px 10px 10px 0px; | |
45 | + background-color: #fff8dc; | |
46 | +} | |
47 | + | |
48 | +.suite-name { | |
49 | + padding-left: 10px; | |
50 | + font-size: 25px; | |
51 | + font-family: Times; | |
52 | +} | |
53 | + | |
54 | +.main-panel-header { | |
55 | + padding: 5px; | |
56 | + background-color: #9FB4D9; //afeeee; | |
57 | + font-family: monospace; | |
58 | + font-size: 18px; | |
59 | +} | |
60 | + | |
61 | +.main-panel-content { | |
62 | + padding: 5px; | |
63 | + margin-bottom: 10px; | |
64 | + background-color: #DEE8FC; //d0ffff; | |
65 | +} | |
66 | + | |
67 | +.rounded-window { | |
68 | + border-radius: 10px; | |
69 | + border-style: solid; | |
70 | + border-width: 1px; | |
71 | +} | |
72 | + | |
73 | +.rounded-window-top { | |
74 | + border-top-right-radius: 10px 10px; | |
75 | + border-top-left-radius: 10px 10px; | |
76 | + border-style: solid; | |
77 | + border-width: 1px; | |
78 | + overflow: auto; | |
79 | +} | |
80 | + | |
81 | +.light-rounded-window-top { | |
82 | + border-top-right-radius: 10px 10px; | |
83 | + border-top-left-radius: 10px 10px; | |
84 | +} | |
85 | + | |
86 | +.rounded-window-bottom { | |
87 | + border-style: solid; | |
88 | + border-width: 0px 1px 1px 1px; | |
89 | + border-bottom-right-radius: 10px 10px; | |
90 | + border-bottom-left-radius: 10px 10px; | |
91 | + overflow: auto; | |
92 | +} | |
93 | + | |
94 | +.method-name { | |
95 | + font-size: 12px; | |
96 | + font-family: monospace; | |
97 | +} | |
98 | + | |
99 | +.method-content { | |
100 | + border-style: solid; | |
101 | + border-width: 0px 0px 1px 0px; | |
102 | + margin-bottom: 10; | |
103 | + padding-bottom: 5px; | |
104 | + width: 80%; | |
105 | +} | |
106 | + | |
107 | +.parameters { | |
108 | + font-size: 14px; | |
109 | + font-family: monospace; | |
110 | +} | |
111 | + | |
112 | +.stack-trace { | |
113 | + white-space: pre; | |
114 | + font-family: monospace; | |
115 | + font-size: 12px; | |
116 | + font-weight: bold; | |
117 | + margin-top: 0px; | |
118 | + margin-left: 20px; | |
119 | +} | |
120 | + | |
121 | +.testng-xml { | |
122 | + font-family: monospace; | |
123 | +} | |
124 | + | |
125 | +.method-list-content { | |
126 | + margin-left: 10px; | |
127 | +} | |
128 | + | |
129 | +.navigator-suite-content { | |
130 | + margin-left: 10px; | |
131 | + font: 12px 'Lucida Grande'; | |
132 | +} | |
133 | + | |
134 | +.suite-section-title { | |
135 | + margin-top: 10px; | |
136 | + width: 80%; | |
137 | + border-style: solid; | |
138 | + border-width: 1px 0px 0px 0px; | |
139 | + font-family: Times; | |
140 | + font-size: 18px; | |
141 | + font-weight: bold; | |
142 | +} | |
143 | + | |
144 | +.suite-section-content { | |
145 | + list-style-image: url(bullet_point.png); | |
146 | +} | |
147 | + | |
148 | +.top-banner-root { | |
149 | + position: absolute; | |
150 | + top: 0; | |
151 | + height: 45px; | |
152 | + left: 0; | |
153 | + right: 0; | |
154 | + padding: 5px; | |
155 | + margin: 0px 0px 5px 0px; | |
156 | + background-color: #0066ff; | |
157 | + font-family: Times; | |
158 | + color: #fff; | |
159 | + text-align: center; | |
160 | +} | |
161 | + | |
162 | +.top-banner-title-font { | |
163 | + font-size: 25px; | |
164 | +} | |
165 | + | |
166 | +.test-name { | |
167 | + font-family: 'Lucida Grande'; | |
168 | + font-size: 16px; | |
169 | +} | |
170 | + | |
171 | +.suite-icon { | |
172 | + padding: 5px; | |
173 | + float: right; | |
174 | + height: 20; | |
175 | +} | |
176 | + | |
177 | +.test-group { | |
178 | + font: 20px 'Lucida Grande'; | |
179 | + margin: 5px 5px 10px 5px; | |
180 | + border-width: 0px 0px 1px 0px; | |
181 | + border-style: solid; | |
182 | + padding: 5px; | |
183 | +} | |
184 | + | |
185 | +.test-group-name { | |
186 | + font-weight: bold; | |
187 | +} | |
188 | + | |
189 | +.method-in-group { | |
190 | + font-size: 16px; | |
191 | + margin-left: 80px; | |
192 | +} | |
193 | + | |
194 | +table.google-visualization-table-table { | |
195 | + width: 100%; | |
196 | +} | |
197 | + | |
198 | +.reporter-method-name { | |
199 | + font-size: 14px; | |
200 | + font-family: monospace; | |
201 | +} | |
202 | + | |
203 | +.reporter-method-output-div { | |
204 | + padding: 5px; | |
205 | + margin: 0px 0px 5px 20px; | |
206 | + font-size: 12px; | |
207 | + font-family: monospace; | |
208 | + border-width: 0px 0px 0px 1px; | |
209 | + border-style: solid; | |
210 | +} | |
211 | + | |
212 | +.ignored-class-div { | |
213 | + font-size: 14px; | |
214 | + font-family: monospace; | |
215 | +} | |
216 | + | |
217 | +.ignored-methods-div { | |
218 | + padding: 5px; | |
219 | + margin: 0px 0px 5px 20px; | |
220 | + font-size: 12px; | |
221 | + font-family: monospace; | |
222 | + border-width: 0px 0px 0px 1px; | |
223 | + border-style: solid; | |
224 | +} | |
225 | + | |
226 | +.border-failed { | |
227 | + border-top-left-radius: 10px 10px; | |
228 | + border-bottom-left-radius: 10px 10px; | |
229 | + border-style: solid; | |
230 | + border-width: 0px 0px 0px 10px; | |
231 | + border-color: #f00; | |
232 | +} | |
233 | + | |
234 | +.border-skipped { | |
235 | + border-top-left-radius: 10px 10px; | |
236 | + border-bottom-left-radius: 10px 10px; | |
237 | + border-style: solid; | |
238 | + border-width: 0px 0px 0px 10px; | |
239 | + border-color: #edc600; | |
240 | +} | |
241 | + | |
242 | +.border-passed { | |
243 | + border-top-left-radius: 10px 10px; | |
244 | + border-bottom-left-radius: 10px 10px; | |
245 | + border-style: solid; | |
246 | + border-width: 0px 0px 0px 10px; | |
247 | + border-color: #19f52d; | |
248 | +} | |
249 | + | |
250 | +.times-div { | |
251 | + text-align: center; | |
252 | + padding: 5px; | |
253 | +} | |
254 | + | |
255 | +.suite-total-time { | |
256 | + font: 16px 'Lucida Grande'; | |
257 | +} | |
258 | + | |
259 | +.configuration-suite { | |
260 | + margin-left: 20px; | |
261 | +} | |
262 | + | |
263 | +.configuration-test { | |
264 | + margin-left: 40px; | |
265 | +} | |
266 | + | |
267 | +.configuration-class { | |
268 | + margin-left: 60px; | |
269 | +} | |
270 | + | |
271 | +.configuration-method { | |
272 | + margin-left: 80px; | |
273 | +} | |
274 | + | |
275 | +.test-method { | |
276 | + margin-left: 100px; | |
277 | +} | |
278 | + | |
279 | +.chronological-class { | |
280 | + background-color: #0ccff; | |
281 | + border-style: solid; | |
282 | + border-width: 0px 0px 1px 1px; | |
283 | +} | |
284 | + | |
285 | +.method-start { | |
286 | + float: right; | |
287 | +} | |
288 | + | |
289 | +.chronological-class-name { | |
290 | + padding: 0px 0px 0px 5px; | |
291 | + color: #008; | |
292 | +} | |
293 | + | |
294 | +.after, .before, .test-method { | |
295 | + font-family: monospace; | |
296 | + font-size: 14px; | |
297 | +} | |
298 | + | |
299 | +.navigator-suite-header { | |
300 | + font-size: 22px; | |
301 | + margin: 0px 10px 5px 0px; | |
302 | + background-color: #deb887; | |
303 | + text-align: center; | |
304 | +} | |
305 | + | |
306 | +.collapse-all-icon { | |
307 | + padding: 5px; | |
308 | + float: right; | |
309 | +} | ... | ... |
1 | +++ a/test-output/testng-reports.js | |
... | ... | @@ -0,0 +1,122 @@ |
1 | +$(document).ready(function() { | |
2 | + $('a.navigator-link').click(function() { | |
3 | + // Extract the panel for this link | |
4 | + var panel = getPanelName($(this)); | |
5 | + | |
6 | + // Mark this link as currently selected | |
7 | + $('.navigator-link').parent().removeClass('navigator-selected'); | |
8 | + $(this).parent().addClass('navigator-selected'); | |
9 | + | |
10 | + showPanel(panel); | |
11 | + }); | |
12 | + | |
13 | + installMethodHandlers('failed'); | |
14 | + installMethodHandlers('skipped'); | |
15 | + installMethodHandlers('passed', true); // hide passed methods by default | |
16 | + | |
17 | + $('a.method').click(function() { | |
18 | + showMethod($(this)); | |
19 | + return false; | |
20 | + }); | |
21 | + | |
22 | + // Hide all the panels and display the first one (do this last | |
23 | + // to make sure the click() will invoke the listeners) | |
24 | + $('.panel').hide(); | |
25 | + $('.navigator-link').first().click(); | |
26 | + | |
27 | + // Collapse/expand the suites | |
28 | + $('a.collapse-all-link').click(function() { | |
29 | + var contents = $('.navigator-suite-content'); | |
30 | + if (contents.css('display') == 'none') { | |
31 | + contents.show(); | |
32 | + } else { | |
33 | + contents.hide(); | |
34 | + } | |
35 | + }); | |
36 | +}); | |
37 | + | |
38 | +// The handlers that take care of showing/hiding the methods | |
39 | +function installMethodHandlers(name, hide) { | |
40 | + function getContent(t) { | |
41 | + return $('.method-list-content.' + name + "." + t.attr('panel-name')); | |
42 | + } | |
43 | + | |
44 | + function getHideLink(t, name) { | |
45 | + var s = 'a.hide-methods.' + name + "." + t.attr('panel-name'); | |
46 | + return $(s); | |
47 | + } | |
48 | + | |
49 | + function getShowLink(t, name) { | |
50 | + return $('a.show-methods.' + name + "." + t.attr('panel-name')); | |
51 | + } | |
52 | + | |
53 | + function getMethodPanelClassSel(element, name) { | |
54 | + var panelName = getPanelName(element); | |
55 | + var sel = '.' + panelName + "-class-" + name; | |
56 | + return $(sel); | |
57 | + } | |
58 | + | |
59 | + $('a.hide-methods.' + name).click(function() { | |
60 | + var w = getContent($(this)); | |
61 | + w.hide(); | |
62 | + getHideLink($(this), name).hide(); | |
63 | + getShowLink($(this), name).show(); | |
64 | + getMethodPanelClassSel($(this), name).hide(); | |
65 | + }); | |
66 | + | |
67 | + $('a.show-methods.' + name).click(function() { | |
68 | + var w = getContent($(this)); | |
69 | + w.show(); | |
70 | + getHideLink($(this), name).show(); | |
71 | + getShowLink($(this), name).hide(); | |
72 | + showPanel(getPanelName($(this))); | |
73 | + getMethodPanelClassSel($(this), name).show(); | |
74 | + }); | |
75 | + | |
76 | + if (hide) { | |
77 | + $('a.hide-methods.' + name).click(); | |
78 | + } else { | |
79 | + $('a.show-methods.' + name).click(); | |
80 | + } | |
81 | +} | |
82 | + | |
83 | +function getHashForMethod(element) { | |
84 | + return element.attr('hash-for-method'); | |
85 | +} | |
86 | + | |
87 | +function getPanelName(element) { | |
88 | + return element.attr('panel-name'); | |
89 | +} | |
90 | + | |
91 | +function showPanel(panelName) { | |
92 | + $('.panel').hide(); | |
93 | + var panel = $('.panel[panel-name="' + panelName + '"]'); | |
94 | + panel.show(); | |
95 | +} | |
96 | + | |
97 | +function showMethod(element) { | |
98 | + var hashTag = getHashForMethod(element); | |
99 | + var panelName = getPanelName(element); | |
100 | + showPanel(panelName); | |
101 | + var current = document.location.href; | |
102 | + var base = current.substring(0, current.indexOf('#')) | |
103 | + document.location.href = base + '#' + hashTag; | |
104 | + var newPosition = $(document).scrollTop() - 65; | |
105 | + $(document).scrollTop(newPosition); | |
106 | +} | |
107 | + | |
108 | +function drawTable() { | |
109 | + for (var i = 0; i < suiteTableInitFunctions.length; i++) { | |
110 | + window[suiteTableInitFunctions[i]](); | |
111 | + } | |
112 | + | |
113 | + for (var k in window.suiteTableData) { | |
114 | + var v = window.suiteTableData[k]; | |
115 | + var div = v.tableDiv; | |
116 | + var data = v.tableData | |
117 | + var table = new google.visualization.Table(document.getElementById(div)); | |
118 | + table.draw(data, { | |
119 | + showRowNumber : false | |
120 | + }); | |
121 | + } | |
122 | +} | ... | ... |
1 | +++ a/test-output/testng-results.xml | |
... | ... | @@ -0,0 +1,53 @@ |
1 | +<?xml version="1.0" encoding="UTF-8"?> | |
2 | +<testng-results skipped="0" failed="0" ignored="0" total="2" passed="2"> | |
3 | + <reporter-output> | |
4 | + </reporter-output> | |
5 | + <suite name="bpms自动化测试" duration-ms="35821" started-at="2018-04-10T10:26:41Z" finished-at="2018-04-10T10:27:17Z"> | |
6 | + <groups> | |
7 | + </groups> | |
8 | + <test name="login" duration-ms="35821" started-at="2018-04-10T10:26:41Z" finished-at="2018-04-10T10:27:17Z"> | |
9 | + <class name="com.essa.testSuite.Test_Login"> | |
10 | + <test-method status="PASS" signature="setUp()[pri:0, instance:com.essa.testSuite.Test_Login@83b407]" name="setUp" is-config="true" duration-ms="12567" started-at="2018-04-10T10:26:41Z" finished-at="2018-04-10T10:26:54Z"> | |
11 | + <reporter-output> | |
12 | + </reporter-output> | |
13 | + </test-method> <!-- setUp --> | |
14 | + <test-method status="PASS" signature="login(java.lang.String, java.lang.String)[pri:0, instance:com.essa.testSuite.Test_Login@83b407]" name="login" duration-ms="9690" started-at="2018-04-10T10:26:56Z" data-provider="users" finished-at="2018-04-10T10:27:06Z"> | |
15 | + <params> | |
16 | + <param index="0"> | |
17 | + <value> | |
18 | + <![CDATA[admin]]> | |
19 | + </value> | |
20 | + </param> | |
21 | + <param index="1"> | |
22 | + <value> | |
23 | + <![CDATA[essa123]]> | |
24 | + </value> | |
25 | + </param> | |
26 | + </params> | |
27 | + <reporter-output> | |
28 | + </reporter-output> | |
29 | + </test-method> <!-- login --> | |
30 | + <test-method status="PASS" signature="login(java.lang.String, java.lang.String)[pri:0, instance:com.essa.testSuite.Test_Login@83b407]" name="login" duration-ms="9110" started-at="2018-04-10T10:27:06Z" data-provider="users" finished-at="2018-04-10T10:27:15Z"> | |
31 | + <params> | |
32 | + <param index="0"> | |
33 | + <value> | |
34 | + <![CDATA[linrong]]> | |
35 | + </value> | |
36 | + </param> | |
37 | + <param index="1"> | |
38 | + <value> | |
39 | + <![CDATA[essa123]]> | |
40 | + </value> | |
41 | + </param> | |
42 | + </params> | |
43 | + <reporter-output> | |
44 | + </reporter-output> | |
45 | + </test-method> <!-- login --> | |
46 | + <test-method status="PASS" signature="tearDown()[pri:0, instance:com.essa.testSuite.Test_Login@83b407]" name="tearDown" is-config="true" duration-ms="2199" started-at="2018-04-10T10:27:15Z" finished-at="2018-04-10T10:27:17Z"> | |
47 | + <reporter-output> | |
48 | + </reporter-output> | |
49 | + </test-method> <!-- tearDown --> | |
50 | + </class> <!-- com.essa.testSuite.Test_Login --> | |
51 | + </test> <!-- login --> | |
52 | + </suite> <!-- bpms自动化测试 --> | |
53 | +</testng-results> | ... | ... |
1 | +++ a/test-output/testng.css | |
... | ... | @@ -0,0 +1,9 @@ |
1 | +.invocation-failed, .test-failed { background-color: #DD0000; } | |
2 | +.invocation-percent, .test-percent { background-color: #006600; } | |
3 | +.invocation-passed, .test-passed { background-color: #00AA00; } | |
4 | +.invocation-skipped, .test-skipped { background-color: #CCCC00; } | |
5 | + | |
6 | +.main-page { | |
7 | + font-size: x-large; | |
8 | +} | |
9 | + | ... | ... |
test-output/xml/com.essa.testSuite.Test_Login_results.xml
0 → 100644
1 | +++ a/test-output/xml/com.essa.testSuite.Test_Login_results.xml | |
... | ... | @@ -0,0 +1,14 @@ |
1 | +<?xml version="1.0" encoding="UTF-8"?> | |
2 | +<testsuite name="怬" | |
3 | + tests="2" | |
4 | + failures="0" | |
5 | + errors="0" | |
6 | + skipped="0" | |
7 | + time="11.344"> | |
8 | + <properties /> | |
9 | + | |
10 | + | |
11 | + <testcase name="login" time="5.201" classname="com.essa.testSuite.Test_Login" /> | |
12 | + <testcase name="login" time="6.143" classname="com.essa.testSuite.Test_Login" /> | |
13 | + | |
14 | +</testsuite> | ... | ... |