Browse Source

update some

hegl 8 years ago
parent
commit
a6533d143f
4 changed files with 514 additions and 483 deletions
  1. 286 180
      .idea/workspace.xml
  2. 37 51
      MyTest/moaTest.py
  3. 191 0
      MyTest/test.py
  4. 0 252
      MyTest/test_HTMLTestRunner.py

+ 286 - 180
.idea/workspace.xml

@@ -1,9 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
   <component name="ChangeListManager">
-    <list default="true" id="82c8521e-4e92-439a-a797-bd5cecfdccd4" name="Default" comment="">
+    <list default="true" id="82c8521e-4e92-439a-a797-bd5cecfdccd4" name="Default" comment="update readme">
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/MyTest/test.py" />
+      <change type="DELETED" beforePath="$PROJECT_DIR$/MyTest/test_HTMLTestRunner.py" afterPath="" />
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/README.md" afterPath="$PROJECT_DIR$/README.md" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/MyTest/moaTest.py" afterPath="$PROJECT_DIR$/MyTest/moaTest.py" />
     </list>
     <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
     <option name="TRACKING_ENABLED" value="true" />
@@ -14,7 +16,8 @@
   </component>
   <component name="CoverageDataManager">
     <SUITE FILE_PATH="coverage/PythonSpace$test_htmltestrunner.coverage" NAME="test_htmltestrunner Coverage Results" MODIFIED="1490769182058" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/MyTest" />
-    <SUITE FILE_PATH="coverage/PythonSpace$moaTest.coverage" NAME="moaTest Coverage Results" MODIFIED="1491037013859" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/MyTest" />
+    <SUITE FILE_PATH="coverage/PythonSpace$moaTest.coverage" NAME="moaTest Coverage Results" MODIFIED="1491376780287" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/MyTest" />
+    <SUITE FILE_PATH="coverage/PythonSpace$Unittests_in_test_HTMLTestRunner.coverage" NAME="Unittests in test_HTMLTestRunner Coverage Results" MODIFIED="1491376947026" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/MyTest" />
     <SUITE FILE_PATH="coverage/PythonSpace$Unittests_in_HTMLTestRunner.coverage" NAME="Unittests in HTMLTestRunner Coverage Results" MODIFIED="1490767215505" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />
     <SUITE FILE_PATH="coverage/PythonSpace$firstpy__1_.coverage" NAME="firstpy (1) Coverage Results" MODIFIED="1490769017641" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/MyTest" />
     <SUITE FILE_PATH="coverage/PythonSpace$Unittests_in_qqTest.coverage" NAME="Unittests in qqTest Coverage Results" MODIFIED="1490934080753" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/MyTest" />
@@ -23,6 +26,7 @@
     <SUITE FILE_PATH="coverage/PythonSpace$test.coverage" NAME="test Coverage Results" MODIFIED="1486630289684" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />
     <SUITE FILE_PATH="coverage/PythonSpace$firstpy.coverage" NAME="firstpy Coverage Results" MODIFIED="1490933877884" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />
     <SUITE FILE_PATH="coverage/PythonSpace$hellow_python.coverage" NAME="hellow python Coverage Results" MODIFIED="1487743932113" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />
+    <SUITE FILE_PATH="coverage/PythonSpace$webdriver.coverage" NAME="webdriver Coverage Results" MODIFIED="1491373570607" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="D:/Program Files (x86)/Python27/Lib/site-packages/selenium/webdriver/remote" />
   </component>
   <component name="CreatePatchCommitExecutor">
     <option name="PATCH_PATH" value="" />
@@ -44,28 +48,55 @@
       <file leaf-file-name="moaTest.py" pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/MyTest/moaTest.py">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="19">
-              <caret line="10" column="43" lean-forward="false" selection-start-line="10" selection-start-column="43" selection-end-line="10" selection-end-column="43" />
+            <state relative-caret-position="841">
+              <caret line="73" column="41" lean-forward="false" selection-start-line="73" selection-start-column="41" selection-end-line="73" selection-end-column="41" />
+              <folding>
+                <element signature="e#184#203#0" expanded="false" />
+                <element signature="e#2780#3477#0" expanded="false" />
+                <element signature="e#3536#4332#0" expanded="false" />
+                <element signature="e#4374#5038#0" expanded="false" />
+                <element signature="e#5728#5804#0" expanded="false" />
+                <element signature="e#5838#5900#0" expanded="false" />
+              </folding>
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="one.py" pinned="false" current-in-tab="false">
+        <entry file="file://E:/桌面/one.py">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="423">
+              <caret line="38" column="35" lean-forward="true" selection-start-line="0" selection-start-column="0" selection-end-line="190" selection-end-column="16" />
               <folding />
             </state>
           </provider>
         </entry>
       </file>
-      <file leaf-file-name="README.md" pinned="false" current-in-tab="true">
-        <entry file="file://$PROJECT_DIR$/README.md">
+      <file leaf-file-name="test.py" pinned="false" current-in-tab="true">
+        <entry file="file://$PROJECT_DIR$/MyTest/test.py">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="38">
-              <caret line="2" column="4" lean-forward="true" selection-start-line="2" selection-start-column="4" selection-end-line="2" selection-end-column="4" />
+            <state relative-caret-position="550">
+              <caret line="27" column="19" lean-forward="true" selection-start-line="27" selection-start-column="19" selection-end-line="27" selection-end-column="19" />
               <folding />
             </state>
           </provider>
         </entry>
       </file>
-      <file leaf-file-name="one.py" pinned="false" current-in-tab="false">
-        <entry file="file://E:/桌面/one.py">
+      <file leaf-file-name="qqTest.py" pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/MyTest/qqTest.py">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="361">
-              <caret line="21" column="32" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="190" selection-end-column="16" />
+            <state relative-caret-position="340">
+              <caret line="22" column="0" lean-forward="true" selection-start-line="22" selection-start-column="0" selection-end-line="22" selection-end-column="0" />
+              <folding />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file leaf-file-name="__init__.py" pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/MyTest/__init__.py">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="0">
+              <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
               <folding />
             </state>
           </provider>
@@ -74,7 +105,7 @@
       <file leaf-file-name="case.py" pinned="false" current-in-tab="false">
         <entry file="file://D:/Program Files (x86)/Python27/Lib/unittest/case.py">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="5985">
+            <state relative-caret-position="496">
               <caret line="328" column="0" lean-forward="false" selection-start-line="328" selection-start-column="0" selection-end-line="328" selection-end-column="0" />
               <folding />
             </state>
@@ -125,13 +156,15 @@
         <option value="$PROJECT_DIR$/Demo/login.py" />
         <option value="D:/Program Files (x86)/Python27/Lib/site-packages/HTMLTestRunner.py" />
         <option value="$PROJECT_DIR$/Demo/test_HTMLTestRunner.py" />
-        <option value="$PROJECT_DIR$/MyTest/test_HTMLTestRunner.py" />
         <option value="$PROJECT_DIR$/MyTest/firstpy.py" />
         <option value="$PROJECT_DIR$/MyTest/qqTest.py" />
         <option value="$PROJECT_DIR$/common/errorStatus.py" />
         <option value="$PROJECT_DIR$/common/utility.py" />
-        <option value="$PROJECT_DIR$/MyTest/moaTest.py" />
         <option value="$PROJECT_DIR$/README.md" />
+        <option value="$PROJECT_DIR$/MyTest/moaTest.py" />
+        <option value="E:/桌面/one.py" />
+        <option value="$PROJECT_DIR$/MyTest/onemore.py" />
+        <option value="$PROJECT_DIR$/MyTest/test_HTMLTestRunner.py" />
       </list>
     </option>
   </component>
@@ -239,7 +272,7 @@
     <property name="js.eslint.eslintPackage" value="" />
     <property name="js-jscs-nodeInterpreter" value="D:\Program Files\nodejs\node.exe" />
     <property name="last_opened_file_path" value="$PROJECT_DIR$" />
-    <property name="settings.editor.selected.configurable" value="vcs.Git" />
+    <property name="settings.editor.selected.configurable" value="reference.settingsdialog.IDE.editor.colors.Font" />
   </component>
   <component name="RecentsManager">
     <key name="MoveFile.RECENT_KEYS">
@@ -251,26 +284,31 @@
       <recent name="D:\AutoTest\PythonSpace" />
     </key>
   </component>
-  <component name="RunManager" selected="Python.moaTest">
-    <configuration default="false" name="firstpy" type="PythonConfigurationType" factoryName="Python" temporary="true">
+  <component name="RunManager">
+    <configuration default="false" name="Unittests in qqTest" type="tests" factoryName="Unittests" temporary="true" nameIsGenerated="true">
       <option name="INTERPRETER_OPTIONS" value="" />
       <option name="PARENT_ENVS" value="true" />
-      <envs>
-        <env name="PYTHONUNBUFFERED" value="1" />
-      </envs>
+      <envs />
       <option name="SDK_HOME" value="" />
-      <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
+      <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/MyTest" />
       <option name="IS_MODULE_SDK" value="true" />
       <option name="ADD_CONTENT_ROOTS" value="true" />
       <option name="ADD_SOURCE_ROOTS" value="true" />
       <module name="PythonSpace" />
       <EXTENSION ID="PythonCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" runner="coverage.py" />
-      <option name="SCRIPT_NAME" value="D:\AutoTest\PythonSpace\MyTest\moaTest.py" />
-      <option name="PARAMETERS" value="" />
-      <option name="SHOW_COMMAND_LINE" value="false" />
+      <option name="SCRIPT_NAME" value="$PROJECT_DIR$/MyTest/qqTest.py" />
+      <option name="CLASS_NAME" value="" />
+      <option name="METHOD_NAME" value="" />
+      <option name="FOLDER_NAME" value="" />
+      <option name="TEST_TYPE" value="TEST_SCRIPT" />
+      <option name="PATTERN" value="" />
+      <option name="USE_PATTERN" value="false" />
+      <option name="PUREUNITTEST" value="true" />
+      <option name="PARAMS" value="" />
+      <option name="USE_PARAM" value="false" />
       <method />
     </configuration>
-    <configuration default="false" name="test_htmltestrunner" type="PythonConfigurationType" factoryName="Python" temporary="true">
+    <configuration default="false" name="qqTest" type="PythonConfigurationType" factoryName="Python" temporary="true">
       <option name="INTERPRETER_OPTIONS" value="" />
       <option name="PARENT_ENVS" value="true" />
       <envs>
@@ -283,15 +321,17 @@
       <option name="ADD_SOURCE_ROOTS" value="true" />
       <module name="PythonSpace" />
       <EXTENSION ID="PythonCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" runner="coverage.py" />
-      <option name="SCRIPT_NAME" value="$PROJECT_DIR$/MyTest/test_HTMLTestRunner.py" />
+      <option name="SCRIPT_NAME" value="$PROJECT_DIR$/MyTest/qqTest.py" />
       <option name="PARAMETERS" value="" />
       <option name="SHOW_COMMAND_LINE" value="false" />
       <method />
     </configuration>
-    <configuration default="false" name="Unittests in qqTest" type="tests" factoryName="Unittests" temporary="true" nameIsGenerated="true">
+    <configuration default="false" name="moaTest" type="PythonConfigurationType" factoryName="Python" temporary="true">
       <option name="INTERPRETER_OPTIONS" value="" />
       <option name="PARENT_ENVS" value="true" />
-      <envs />
+      <envs>
+        <env name="PYTHONUNBUFFERED" value="1" />
+      </envs>
       <option name="SDK_HOME" value="" />
       <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/MyTest" />
       <option name="IS_MODULE_SDK" value="true" />
@@ -299,42 +339,33 @@
       <option name="ADD_SOURCE_ROOTS" value="true" />
       <module name="PythonSpace" />
       <EXTENSION ID="PythonCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" runner="coverage.py" />
-      <option name="SCRIPT_NAME" value="$PROJECT_DIR$/MyTest/qqTest.py" />
-      <option name="CLASS_NAME" value="" />
-      <option name="METHOD_NAME" value="" />
-      <option name="FOLDER_NAME" value="" />
-      <option name="TEST_TYPE" value="TEST_SCRIPT" />
-      <option name="PATTERN" value="" />
-      <option name="USE_PATTERN" value="false" />
-      <option name="PUREUNITTEST" value="true" />
-      <option name="PARAMS" value="" />
-      <option name="USE_PARAM" value="false" />
+      <option name="SCRIPT_NAME" value="$PROJECT_DIR$/MyTest/moaTest.py" />
+      <option name="PARAMETERS" value="" />
+      <option name="SHOW_COMMAND_LINE" value="false" />
       <method />
     </configuration>
-    <configuration default="false" name="qqTest" type="PythonConfigurationType" factoryName="Python" temporary="true">
+    <configuration default="false" name="webdriver" type="PythonConfigurationType" factoryName="Python" temporary="true">
       <option name="INTERPRETER_OPTIONS" value="" />
       <option name="PARENT_ENVS" value="true" />
       <envs>
         <env name="PYTHONUNBUFFERED" value="1" />
       </envs>
       <option name="SDK_HOME" value="" />
-      <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/MyTest" />
+      <option name="WORKING_DIRECTORY" value="D:/Program Files (x86)/Python27/Lib/site-packages/selenium/webdriver/remote" />
       <option name="IS_MODULE_SDK" value="true" />
       <option name="ADD_CONTENT_ROOTS" value="true" />
       <option name="ADD_SOURCE_ROOTS" value="true" />
       <module name="PythonSpace" />
       <EXTENSION ID="PythonCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" runner="coverage.py" />
-      <option name="SCRIPT_NAME" value="$PROJECT_DIR$/MyTest/qqTest.py" />
+      <option name="SCRIPT_NAME" value="D:/Program Files (x86)/Python27/Lib/site-packages/selenium/webdriver/remote/webdriver.py" />
       <option name="PARAMETERS" value="" />
       <option name="SHOW_COMMAND_LINE" value="false" />
       <method />
     </configuration>
-    <configuration default="false" name="moaTest" type="PythonConfigurationType" factoryName="Python" temporary="true">
+    <configuration default="false" name="Unittests in test" type="tests" factoryName="Unittests" temporary="true" nameIsGenerated="true">
       <option name="INTERPRETER_OPTIONS" value="" />
       <option name="PARENT_ENVS" value="true" />
-      <envs>
-        <env name="PYTHONUNBUFFERED" value="1" />
-      </envs>
+      <envs />
       <option name="SDK_HOME" value="" />
       <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/MyTest" />
       <option name="IS_MODULE_SDK" value="true" />
@@ -342,9 +373,16 @@
       <option name="ADD_SOURCE_ROOTS" value="true" />
       <module name="PythonSpace" />
       <EXTENSION ID="PythonCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" runner="coverage.py" />
-      <option name="SCRIPT_NAME" value="$PROJECT_DIR$/MyTest/moaTest.py" />
-      <option name="PARAMETERS" value="" />
-      <option name="SHOW_COMMAND_LINE" value="false" />
+      <option name="SCRIPT_NAME" value="D:\AutoTest\AppCode_Test\PythonSpace\MyTest\test.py" />
+      <option name="CLASS_NAME" value="" />
+      <option name="METHOD_NAME" value="" />
+      <option name="FOLDER_NAME" value="" />
+      <option name="TEST_TYPE" value="TEST_SCRIPT" />
+      <option name="PATTERN" value="" />
+      <option name="USE_PATTERN" value="false" />
+      <option name="PUREUNITTEST" value="true" />
+      <option name="PARAMS" value="" />
+      <option name="USE_PARAM" value="false" />
       <method />
     </configuration>
     <configuration default="true" type="DjangoTestsConfigurationType" factoryName="Django tests">
@@ -562,19 +600,19 @@
       <method />
     </configuration>
     <list size="5">
-      <item index="0" class="java.lang.String" itemvalue="Python.firstpy" />
-      <item index="1" class="java.lang.String" itemvalue="Python.test_htmltestrunner" />
-      <item index="2" class="java.lang.String" itemvalue="Python tests.Unittests in qqTest" />
-      <item index="3" class="java.lang.String" itemvalue="Python.qqTest" />
-      <item index="4" class="java.lang.String" itemvalue="Python.moaTest" />
+      <item index="0" class="java.lang.String" itemvalue="Python tests.Unittests in qqTest" />
+      <item index="1" class="java.lang.String" itemvalue="Python.qqTest" />
+      <item index="2" class="java.lang.String" itemvalue="Python.moaTest" />
+      <item index="3" class="java.lang.String" itemvalue="Python.webdriver" />
+      <item index="4" class="java.lang.String" itemvalue="Python tests.Unittests in test" />
     </list>
     <recent_temporary>
       <list size="5">
-        <item index="0" class="java.lang.String" itemvalue="Python.moaTest" />
-        <item index="1" class="java.lang.String" itemvalue="Python.qqTest" />
-        <item index="2" class="java.lang.String" itemvalue="Python tests.Unittests in qqTest" />
-        <item index="3" class="java.lang.String" itemvalue="Python.firstpy" />
-        <item index="4" class="java.lang.String" itemvalue="Python.test_htmltestrunner" />
+        <item index="0" class="java.lang.String" itemvalue="Python tests.Unittests in test" />
+        <item index="1" class="java.lang.String" itemvalue="Python.moaTest" />
+        <item index="2" class="java.lang.String" itemvalue="Python.webdriver" />
+        <item index="3" class="java.lang.String" itemvalue="Python.qqTest" />
+        <item index="4" class="java.lang.String" itemvalue="Python tests.Unittests in qqTest" />
       </list>
     </recent_temporary>
   </component>
@@ -606,7 +644,14 @@
       <option name="project" value="LOCAL" />
       <updated>1491370385593</updated>
     </task>
-    <option name="localTasksCounter" value="3" />
+    <task id="LOCAL-00003" summary="update readme">
+      <created>1491371160093</created>
+      <option name="number" value="00003" />
+      <option name="presentableId" value="LOCAL-00003" />
+      <option name="project" value="LOCAL" />
+      <updated>1491371160093</updated>
+    </task>
+    <option name="localTasksCounter" value="4" />
     <servers />
   </component>
   <component name="TestHistory">
@@ -631,6 +676,9 @@
     <history-entry file="Unittests_in_qqTest - 2017.03.31 at 12h 21m 22s.xml">
       <configuration name="Unittests in qqTest" configurationId="tests" />
     </history-entry>
+    <history-entry file="Unittests_in_test_HTMLTestRunner - 2017.04.05 at 15h 22m 27s.xml">
+      <configuration name="Unittests in test_HTMLTestRunner" configurationId="tests" />
+    </history-entry>
   </component>
   <component name="TodoView">
     <todo-panel id="selected-file">
@@ -647,22 +695,22 @@
     <layout>
       <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.19726562" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
       <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
-      <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.16344725" sideWeight="0.5222656" order="7" side_tool="true" content_ui="tabs" />
+      <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.23922734" sideWeight="0.52851564" order="7" side_tool="true" content_ui="tabs" />
       <window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
       <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="10" side_tool="false" content_ui="tabs" />
       <window_info id="Python Console" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" />
+      <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.23922734" sideWeight="0.47148436" order="2" side_tool="false" content_ui="tabs" />
       <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
       <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="9" side_tool="false" content_ui="tabs" />
       <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
+      <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3127786" sideWeight="0.46796876" order="3" side_tool="false" content_ui="tabs" />
       <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
       <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
       <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
       <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
-      <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.30586487" sideWeight="0.47916666" order="2" side_tool="false" content_ui="tabs" />
       <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
       <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
       <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
-      <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.5204617" sideWeight="0.4777344" order="3" side_tool="false" content_ui="tabs" />
     </layout>
   </component>
   <component name="TypeScriptGeneratedFilesManager">
@@ -674,10 +722,28 @@
   <component name="VcsManagerConfiguration">
     <MESSAGE value="python demo" />
     <MESSAGE value="update moaTest" />
-    <option name="LAST_COMMIT_MESSAGE" value="update moaTest" />
+    <MESSAGE value="update readme" />
+    <option name="LAST_COMMIT_MESSAGE" value="update readme" />
   </component>
   <component name="XDebuggerManager">
     <breakpoint-manager>
+      <breakpoints>
+        <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
+          <url>file://$PROJECT_DIR$/MyTest/moaTest.py</url>
+          <line>63</line>
+          <option name="timeStamp" value="113" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
+          <url>file://$PROJECT_DIR$/MyTest/moaTest.py</url>
+          <line>64</line>
+          <option name="timeStamp" value="116" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
+          <url>file://$PROJECT_DIR$/MyTest/moaTest.py</url>
+          <line>39</line>
+          <option name="timeStamp" value="117" />
+        </line-breakpoint>
+      </breakpoints>
       <default-breakpoints>
         <breakpoint type="python-exception">
           <properties notifyOnTerminate="true" exception="BaseException">
@@ -685,74 +751,11 @@
           </properties>
         </breakpoint>
       </default-breakpoints>
-      <option name="time" value="104" />
+      <option name="time" value="118" />
     </breakpoint-manager>
     <watches-manager />
   </component>
   <component name="editorHistoryManager">
-    <entry file="file://$PROJECT_DIR$/MyTest/moaTest.py">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="399">
-          <caret line="21" column="71" lean-forward="true" selection-start-line="21" selection-start-column="71" selection-end-line="21" selection-end-column="71" />
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/Demo/hellow python.py">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="0">
-          <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/MyTest/moaTest.py">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="76">
-          <caret line="7" column="0" lean-forward="false" selection-start-line="7" selection-start-column="0" selection-end-line="7" selection-end-column="0" />
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/Demo/hellow python.py">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="133">
-          <caret line="7" column="0" lean-forward="true" selection-start-line="7" selection-start-column="0" selection-end-line="7" selection-end-column="0" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/MyTest/moaTest.py">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="133">
-          <caret line="7" column="0" lean-forward="false" selection-start-line="7" selection-start-column="0" selection-end-line="7" selection-end-column="0" />
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/Demo/hellow python.py">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="0">
-          <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/MyTest/moaTest.py">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="133">
-          <caret line="7" column="0" lean-forward="false" selection-start-line="7" selection-start-column="0" selection-end-line="7" selection-end-column="0" />
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/Demo/hellow python.py">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="0">
-          <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/test.py" />
-    <entry file="file://$PROJECT_DIR$/test.py" />
-    <entry file="file://$PROJECT_DIR$/test.py" />
     <entry file="file://$PROJECT_DIR$/test.py" />
     <entry file="file://$PROJECT_DIR$/calc.py" />
     <entry file="file://$PROJECT_DIR$/test.py" />
@@ -806,13 +809,6 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/MyTest/test_HTMLTestRunner.py">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="570">
-          <caret line="146" column="8" lean-forward="true" selection-start-line="146" selection-start-column="8" selection-end-line="146" selection-end-column="8" />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/Demo/login.py">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="532">
@@ -820,21 +816,7 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/MyTest/__init__.py">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="0">
-          <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/MyTest/2017-0331.html" />
-    <entry file="file://D:/Program Files (x86)/Python27/Lib/site-packages/selenium/webdriver/remote/webelement.py">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="632">
-          <caret line="192" column="0" lean-forward="true" selection-start-line="192" selection-start-column="0" selection-end-line="192" selection-end-column="0" />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://D:/Program Files (x86)/Python27/Lib/site-packages/selenium/webdriver/support/event_firing_webdriver.py">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="404">
@@ -856,13 +838,6 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/MyTest/qqTest.py">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="912">
-          <caret line="48" column="27" lean-forward="true" selection-start-line="48" selection-start-column="27" selection-end-line="48" selection-end-column="27" />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/common/errorStatus.py">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="0">
@@ -877,13 +852,6 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://D:/Program Files (x86)/Python27/Lib/site-packages/selenium/webdriver/remote/webdriver.py">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="608">
-          <caret line="271" column="0" lean-forward="false" selection-start-line="271" selection-start-column="0" selection-end-line="279" selection-end-column="11" />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$USER_HOME$/.PyCharm2016.3/system/python_stubs/1751283516/__builtin__.py">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="233">
@@ -913,13 +881,6 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://D:/Program Files (x86)/Python27/Lib/unittest/suite.py">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="274">
-          <caret line="69" column="0" lean-forward="false" selection-start-line="69" selection-start-column="0" selection-end-line="69" selection-end-column="0" />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://D:/Program Files (x86)/Python27/Lib/unittest/runner.py">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="689">
@@ -934,34 +895,179 @@
         </state>
       </provider>
     </entry>
+    <entry file="file://$PROJECT_DIR$/README.md">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="38">
+          <caret line="2" column="4" lean-forward="true" selection-start-line="2" selection-start-column="4" selection-end-line="2" selection-end-column="4" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://D:/Program Files (x86)/Python27/Lib/unittest/suite.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="325">
+          <caret line="92" column="0" lean-forward="false" selection-start-line="92" selection-start-column="0" selection-end-line="92" selection-end-column="0" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://D:/Program Files (x86)/Python27/Lib/site-packages/selenium/webdriver/remote/webelement.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="331">
+          <caret line="72" column="0" lean-forward="false" selection-start-line="72" selection-start-column="0" selection-end-line="72" selection-end-column="0" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://D:/Program Files (x86)/Python27/Lib/site-packages/selenium/webdriver/remote/webdriver.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="348">
+          <caret line="233" column="0" lean-forward="false" selection-start-line="233" selection-start-column="0" selection-end-line="233" selection-end-column="0" />
+          <folding>
+            <element signature="e#825#838#0" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://D:/Program Files (x86)/Python27/Lib/json/encoder.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="392">
+          <caret line="209" column="0" lean-forward="false" selection-start-line="209" selection-start-column="0" selection-end-line="209" selection-end-column="0" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://D:/Program Files (x86)/Python27/Lib/json/__init__.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="419">
+          <caret line="243" column="0" lean-forward="false" selection-start-line="243" selection-start-column="0" selection-end-line="243" selection-end-column="0" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://D:/Program Files (x86)/Python27/Lib/site-packages/selenium/webdriver/remote/utils.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="594">
+          <caret line="33" column="0" lean-forward="false" selection-start-line="33" selection-start-column="0" selection-end-line="33" selection-end-column="0" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://D:/Program Files (x86)/Python27/Lib/string.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="678">
+          <caret line="175" column="0" lean-forward="false" selection-start-line="175" selection-start-column="0" selection-end-line="175" selection-end-column="0" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://D:/Program Files (x86)/Python27/Lib/logging/__init__.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="326">
+          <caret line="1153" column="0" lean-forward="false" selection-start-line="1153" selection-start-column="0" selection-end-line="1153" selection-end-column="0" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://D:/Program Files (x86)/Python27/Lib/urlparse.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="458">
+          <caret line="148" column="0" lean-forward="false" selection-start-line="148" selection-start-column="0" selection-end-line="148" selection-end-column="0" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://D:/Program Files (x86)/Python27/Lib/site-packages/selenium/webdriver/remote/remote_connection.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="568">
+          <caret line="476" column="0" lean-forward="false" selection-start-line="476" selection-start-column="0" selection-end-line="476" selection-end-column="0" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://D:/Program Files (x86)/Python27/Lib/UserDict.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="326">
+          <caret line="56" column="0" lean-forward="false" selection-start-line="56" selection-start-column="0" selection-end-line="56" selection-end-column="0" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://D:/Program Files (x86)/Python27/Lib/urllib2.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="326">
+          <caret line="504" column="0" lean-forward="false" selection-start-line="504" selection-start-column="0" selection-end-line="504" selection-end-column="0" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://D:/Program Files (x86)/Python27/Lib/urllib.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="656">
+          <caret line="1398" column="33" lean-forward="true" selection-start-line="1398" selection-start-column="33" selection-end-line="1398" selection-end-column="33" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
     <entry file="file://D:/Program Files (x86)/Python27/Lib/unittest/case.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="5985">
+        <state relative-caret-position="496">
           <caret line="328" column="0" lean-forward="false" selection-start-line="328" selection-start-column="0" selection-end-line="328" selection-end-column="0" />
           <folding />
         </state>
       </provider>
     </entry>
+    <entry file="file://$PROJECT_DIR$/MyTest/moaTest.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="841">
+          <caret line="73" column="41" lean-forward="false" selection-start-line="73" selection-start-column="41" selection-end-line="73" selection-end-column="41" />
+          <folding>
+            <element signature="e#184#203#0" expanded="false" />
+            <element signature="e#2780#3477#0" expanded="false" />
+            <element signature="e#3536#4332#0" expanded="false" />
+            <element signature="e#4374#5038#0" expanded="false" />
+            <element signature="e#5728#5804#0" expanded="false" />
+            <element signature="e#5838#5900#0" expanded="false" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/MyTest/onemore.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="0">
+          <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
     <entry file="file://E:/桌面/one.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="361">
-          <caret line="21" column="32" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="190" selection-end-column="16" />
+        <state relative-caret-position="423">
+          <caret line="38" column="35" lean-forward="true" selection-start-line="0" selection-start-column="0" selection-end-line="190" selection-end-column="16" />
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/MyTest/moaTest.py">
+    <entry file="file://$PROJECT_DIR$/MyTest/__init__.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="19">
-          <caret line="10" column="43" lean-forward="false" selection-start-line="10" selection-start-column="43" selection-end-line="10" selection-end-column="43" />
+        <state relative-caret-position="0">
+          <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/README.md">
+    <entry file="file://$PROJECT_DIR$/MyTest/qqTest.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="38">
-          <caret line="2" column="4" lean-forward="true" selection-start-line="2" selection-start-column="4" selection-end-line="2" selection-end-column="4" />
+        <state relative-caret-position="340">
+          <caret line="22" column="0" lean-forward="true" selection-start-line="22" selection-start-column="0" selection-end-line="22" selection-end-column="0" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/MyTest/test.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="550">
+          <caret line="27" column="19" lean-forward="true" selection-start-line="27" selection-start-column="19" selection-end-line="27" selection-end-column="19" />
           <folding />
         </state>
       </provider>

+ 37 - 51
MyTest/moaTest.py

@@ -33,65 +33,51 @@ def changeListTree(listTree):
         listTreeName.append(i.text)
     return listTreeName
 
-def listIsDif(newList,oldList):
-    newListName = changeListTree(newList)
-    oldListName = changeListTree(oldList)
+def listIsDifent(newList, oldList):
+    # newListName = changeListTree(newList)
+    # oldListName = changeListTree(oldList)
     # newListName中有而oldListName中没有的
-    difListName = list(set(newListName).difference(set(oldListName)))
-    print difListName
+    difListName = list(set(newList).difference(set(oldList)))
     print '不同路径的长度',len(difListName)
     return difListName
 
 #找人
-def findOne(self,lookfor,topTree):
+def findOne(self, lookfor, topTree):
     findflag = False
     copyTreeName = changeListTree(topTree)
     toptreeCount = topTree.__len__()
-    for onetree in copyTreeName:
-        num = copyTreeName.index(onetree)
-        currenttreeName = copyTreeName[num]
-        if elementIsExit(self, currenttreeName):
-            self.driver.find_element_by_name(currenttreeName).click()
-            print '程序点击了该路径:', currenttreeName
-        while True:
-            otherTree = self.driver.find_elements_by_id('cn.wswin.moa:id/tv_item_tree_parent')
-            if elementIsExit(self, lookfor):
-                print '程序在该路径下找人:', lookfor
-                findflag = True
-                # self.driver.find_element_by_name(lookfor).click()
-                break
-            elif len(listIsDif(otherTree, topTree)) > 0:
-                print '发现新的路径:', otherTree
-                findOne(self, lookfor, otherTree)
-            elif num < (toptreeCount - 1):
-                nexttreeName = copyTreeName[num + 1]
-                print '要查看的下一个路径名称:', nexttreeName
-                if elementIsExit(self, nexttreeName):
-                    break
-                else:
-                    print '查询不到下一个路径,需要滑动'
-                    self.driver.swipe(710, 1000, 710, 200)  # 往下滑动当前页
+    # for onetree in copyTreeName:
+    #     num = copyTreeName.index(onetree)
+    num = 0
+    currenttreeName = copyTreeName[num]
+    if elementIsExit(self, currenttreeName):
+        self.driver.find_element_by_name(currenttreeName).click()
+        print '程序点击了该路径:', currenttreeName
+    while True:
+        otherTree = self.driver.find_elements_by_id('cn.wswin.moa:id/tv_item_tree_parent')
+        num = num + 1
+        if elementIsExit(self, lookfor):
+            print '程序在该路径下找人:', lookfor
+            findflag = True
+            # self.driver.find_element_by_name(lookfor).click()
+            break
+        elif len(listIsDifent(changeListTree(otherTree), copyTreeName)) > 0:
+            print '发现新的路径:', otherTree
+            findOne(self, lookfor, otherTree)
+        elif num <= (toptreeCount - 1):
+            nexttreeName = copyTreeName[num]
+            print '要查看的下一个路径名称:', nexttreeName
+            if elementIsExit(self, nexttreeName):
+                self.driver.find_element_by_name(nexttreeName).click()
             else:
-                print '结束查找'
-                break
-    print '出结果了要'
-    return findflag
-# def scanOne(self, target, lookfor):
-#     topTree = self.driver.find_elements_by_id('cn.wswin.moa:id/tv_item_tree_parent')  # 后期用target替换
-#     toptreeCount = topTree.__len__()
-#     # opentree.driver.find_element_by_name(parentTree[0].text).click()
-#     count = toptreeCount - 1
-#     for onetree in topTree:
-#         self.driver.find_element_by_name(onetree.text).click()
-#         while True:
-#             if elementIsExit(self, lookfor):
-#                 self.driver.find_element_by_name(lookfor).click()
-#                 # sleep(5)
-#                 break
-#             elif elementIsExit(self, topTree[(topTree.index(onetree) + 1)].text):
-#                 break
-#             else:
-#                 self.driver.swipe(680, 1000, 680, 200)  # 往下滑动当前页
+                print '查询不到下一个路径,需要滑动'
+                self.driver.swipe(710, 1000, 710, 100)  # 往下滑动当前页
+        else:
+            print '结束查找'
+            break
+    if findflag == True:
+        print '出结果了要'
+        return findflag
 
 class PYtest(unittest.TestCase):
     @classmethod
@@ -158,7 +144,7 @@ class PYtest(unittest.TestCase):
         if elementIsExit(opentree,'联系人'):
             print ('当前页面位置:联系人界面')
             topTree = opentree.driver.find_elements_by_id('cn.wswin.moa:id/tv_item_tree_parent')  # 后期用target替换
-            if findOne(opentree, '王巧巧', topTree):
+            if findOne(opentree, '陈明干', topTree):
                 print '找到人了'
 
     def finishDriver(self):

+ 191 - 0
MyTest/test.py

@@ -0,0 +1,191 @@
+# -*- coding: utf-8 -*-
+import os,unittest,copy
+from appium import webdriver
+from time import sleep
+PATH = lambda p: os.path.abspath(
+    os.path.join(os.path.dirname(__file__), p)
+)
+
+# desired_caps = {}
+# desired_caps['platformName'] = 'Android'
+# desired_caps['platformVersion'] = '4.2.3'
+# desired_caps['deviceName'] = '7bbe99db'
+# # desired_caps['app']=PATH('D:\AutoTest\ppp\winsoft.apk')
+# desired_caps['appPackage'] = 'cn.wswin.moa'
+# desired_caps['appActivity'] = '.ui.activity.SplashActivity'
+# desired_caps['unicodeKeyboard'] = True
+# desired_caps['resetKeyboard'] = True
+#
+# driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
+
+#捕获异常
+def elementIsExit(self,element):
+        try:
+            self.driver.find_element_by_name(element)
+        except BaseException,e:
+            print e
+            return False
+        return True
+
+def changeListTree(listTree):
+    listTreeName = []
+    for i in  listTree:
+        listTreeName.append(i.text)
+    return listTreeName
+
+def listIsDif(newListName,oldListName):
+    # newListName = changeListTree(newList)
+    # oldListName = changeListTree(oldList)
+    # newListName中有而oldListName中没有的
+    difListName = list(set(newListName).difference(set(oldListName)))
+    print difListName
+    print '不同路径的长度',len(difListName)
+    return difListName
+
+#找人
+def findOne(self,lookfor,topTree):
+    findflag = False
+    copyTreeName = changeListTree(topTree)
+    toptreeCount = topTree.__len__()
+    for onetree in copyTreeName:
+        num = copyTreeName.index(onetree)
+        currenttreeName = copyTreeName[num]
+        if elementIsExit(self, currenttreeName):
+            self.driver.find_element_by_name(currenttreeName).click()
+            print '程序点击了该路径:', currenttreeName
+        while True:
+            otherTree = self.driver.find_elements_by_id('cn.wswin.moa:id/tv_item_tree_parent')
+            if elementIsExit(self, lookfor):
+                print '程序在该路径下找人:', lookfor
+                findflag = True
+                # self.driver.find_element_by_name(lookfor).click()
+                break
+            elif len(listIsDif(changeListTree(otherTree), copyTreeName)) > 0:
+                print '发现新的路径:', otherTree
+                findOne(self, lookfor, otherTree)
+            elif num < (toptreeCount - 1):
+                nexttreeName = copyTreeName[num + 1]
+                print '要查看的下一个路径名称:', nexttreeName
+                if elementIsExit(self, nexttreeName):
+                    break
+                else:
+                    print '查询不到下一个路径,需要滑动'
+                    self.driver.swipe(710, 1000, 710, 200)  # 往下滑动当前页
+            else:
+                print '结束查找'
+                break
+    print '出结果了要'
+    return findflag
+# def scanOne(self, target, lookfor):
+#     topTree = self.driver.find_elements_by_id('cn.wswin.moa:id/tv_item_tree_parent')  # 后期用target替换
+#     toptreeCount = topTree.__len__()
+#     # opentree.driver.find_element_by_name(parentTree[0].text).click()
+#     count = toptreeCount - 1
+#     for onetree in topTree:
+#         self.driver.find_element_by_name(onetree.text).click()
+#         while True:
+#             if elementIsExit(self, lookfor):
+#                 self.driver.find_element_by_name(lookfor).click()
+#                 # sleep(5)
+#                 break
+#             elif elementIsExit(self, topTree[(topTree.index(onetree) + 1)].text):
+#                 break
+#             else:
+#                 self.driver.swipe(680, 1000, 680, 200)  # 往下滑动当前页
+
+class PYtest(unittest.TestCase):
+    @classmethod
+    def setUpClass(self):
+        print('--------------start App-------------')
+        desired_caps = {}
+        desired_caps['platformName'] = 'Android'
+        desired_caps['platformVersion'] = '4.3'
+        desired_caps['deviceName'] = '7bbe99db'
+        # desired_caps['app']=PATH('D:\AutoTest\ppp\winsoft.apk')
+        desired_caps['appPackage'] = 'cn.wswin.moa'
+        desired_caps['appActivity'] = '.ui.activity.SplashActivity'
+        # desired_caps['appActivity'] = '.ui.activity.MainActivity'
+        desired_caps['unicodeKeyboard'] = True
+        desired_caps['resetKeyboard'] = True
+        self.driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
+        self.driver.implicitly_wait(5)#全局方法最长超时时间
+
+    @classmethod
+    def py_login(login):#登录测试用例
+        #忽略引导页存在,手动去掉引导页之后再进行以下所有测试用例
+        sleep(2)
+        current_Act = login.driver.current_activity
+        print current_Act
+        if current_Act == '.ui.activity.LoginActivity':
+            print ('login App')
+            account = login.driver.find_element_by_id('cn.wswin.moa:id/e_user_name')
+            password = login.driver.find_element_by_id('cn.wswin.moa:id/e_user_password')
+            btn_login = login.driver.find_element_by_name('登录')
+            account.clear()
+            account.send_keys('hgl')
+            password.clear()
+            password.send_keys('hegl123456')
+            btn_login.click()
+            print ('login App passed')
+        elif current_Act =='.ui.activity.MainActivity':
+            print ('app is login')
+        else:
+            print ('不知道你在哪个页面')
+
+    def py_quitApp(quit):#退出APP
+        sleep(2)
+        current_Act= quit.driver.current_activity
+        print current_Act
+        if current_Act == '.ui.activity.MainActivity':
+            print('quit App')
+            btn_left = quit.driver.find_element_by_class_name('android.widget.ImageButton')#最好不要在判断之前提前定义,会因为找不到对象而报错
+            if btn_left.is_enabled():
+                btn_left.click()
+                btn_quit = quit.driver.find_element_by_name('退出')
+            if btn_quit.is_enabled():
+                btn_quit.click()
+                btn_sure = quit.driver.find_element_by_name('确认')
+            if btn_sure.is_enabled():
+               btn_sure.click()
+        print('quit App passed')
+
+    def py_openTree2(opentree):
+        current_Act = opentree.driver.current_activity
+        print current_Act
+        if current_Act == '.ui.activity.MainActivity':
+            sleep(2)
+            opentree.driver.tap([(333, 1224)])  # 此处定位在联系人界面
+        if elementIsExit(opentree,'联系人'):
+            print ('当前页面位置:联系人界面')
+            topTree = opentree.driver.find_elements_by_id('cn.wswin.moa:id/tv_item_tree_parent')  # 后期用target替换
+            if findOne(opentree, '王巧巧', topTree):
+                print '找到人了'
+
+    def finishDriver(self):
+        print('finish Driver')
+        self.driver.quit()
+        print('finish Driver  passed')
+
+    def py_Clicktap1(self):#用例点击事件
+        self.driver.find_element_by_name('在吗').click()
+        print('Click Passed')
+
+    def py_Swiap(self):
+        self.driver.swipe(720,700,0,700)
+        print ('Swip Passed')
+
+if __name__ == '__main__':
+    suite = unittest.TestSuite()
+    #需要测试的用例就addTest,不加的就不会运行
+    # suite.addTest(PYtest('py_Swiap'))
+    suite.addTest(PYtest('py_login'))#APP登录
+    suite.addTest(PYtest('py_openTree2'))
+    # suite.addTest(PYtest('py_quitApp'))#APP登出
+    suite.addTest(PYtest('finishDriver'))#结束测试
+    unittest.TextTestRunner(verbosity=1).run(suite)
+    # timestr = time.strftime('%Y%m%d%H%M%S', time.localtime(time.time()))
+    # filename = "D:\\AutoTest\\report\\report_" + timestr + ".html"
+    # fp = file(filename, "wb")
+    # runner =HTMLTestRunner.HTMLTestRunner(stream=fp, title=u'测试报告', description=u'测试用例详情')
+    # runner.run(suite)
+    # fp.close()

+ 0 - 252
MyTest/test_HTMLTestRunner.py

@@ -1,252 +0,0 @@
-# -*- coding: utf-8 -*-
-
-import StringIO
-import sys
-import unittest
-
-import HTMLTestRunner
-
-# ----------------------------------------------------------------------
-
-def safe_unicode(obj, *args):
-    """ return the unicode representation of obj """
-    try:
-        return unicode(obj, *args)
-    except UnicodeDecodeError:
-        # obj is byte string
-        ascii_text = str(obj).encode('string_escape')
-        return unicode(ascii_text)
-
-def safe_str(obj):
-    """ return the byte string representation of obj """
-    try:
-        return str(obj)
-    except UnicodeEncodeError:
-        # obj is unicode
-        return unicode(obj).encode('unicode_escape')
-
-# ----------------------------------------------------------------------
-# Sample tests to drive the HTMLTestRunner
-
-class SampleTest0(unittest.TestCase):
-    """ A class that passes.
-
-    This simple class has only one test case that passes.
-    """
-    def __init__(self, methodName):
-        unittest.TestCase.__init__(self, methodName)
-
-    def test_pass_no_output(self):
-        """        test description
-        """
-        pass
-
-class SampleTest1(unittest.TestCase):
-    """ A class that fails.
-
-    This simple class has only one test case that fails.
-    """
-    def test_fail(self):
-        """
-        test description (鎻忚堪)
-        """
-        self.fail()
-
-class SampleOutputTestBase(unittest.TestCase):
-    """ Base TestCase. Generates 4 test cases x different content type. """
-    def test_1(self):
-        print self.MESSAGE
-    def test_2(self):
-        print >>sys.stderr, self.MESSAGE
-    def test_3(self):
-        self.fail(self.MESSAGE)
-    def test_4(self):
-        raise RuntimeError(self.MESSAGE)
-
-class SampleTestBasic(SampleOutputTestBase):
-    MESSAGE = 'basic test'
-
-class SampleTestHTML(SampleOutputTestBase):
-    MESSAGE = 'the message is 5 symbols: <>&"\'\nplus the HTML entity string: [&copy;] on a second line'
-
-class SampleTestLatin1(SampleOutputTestBase):
-    MESSAGE = u'the message is 2345'.encode('latin-1')
-
-class SampleTestUnicode(SampleOutputTestBase):
-    u""" Unicode (绲变竴纰�) test """
-    MESSAGE = u'the message is \u8563'
-    # 2006-04-25 Note: Exception would show up as
-    # AssertionError: <unprintable instance object>
-    #
-    # This seems to be limitation of traceback.format_exception()
-    # Same result in standard unittest.
-    def test_pass(self):
-        u""" A test with Unicode (绲变竴纰�) docstring """
-        pass
-
-
-# ------------------------------------------------------------------------
-# This is the main test on HTMLTestRunner
-
-class Test_HTMLTestRunner(unittest.TestCase):
-
-    def test0(self):
-        self.suite = unittest.TestSuite()
-        buf = StringIO.StringIO()
-        runner = HTMLTestRunner.HTMLTestRunner(buf)
-        runner.run(self.suite)
-        # didn't blow up? ok.
-        self.assert_('</html>' in buf.getvalue())
-
-    def test_main(self):
-        # Run HTMLTestRunner. Verify the HTML report.
-
-        # suite of TestCases
-        self.suite = unittest.TestSuite()
-        self.suite.addTests([
-            unittest.defaultTestLoader.loadTestsFromTestCase(SampleTest0),
-            unittest.defaultTestLoader.loadTestsFromTestCase(SampleTest1),
-            unittest.defaultTestLoader.loadTestsFromTestCase(SampleTestBasic),
-            unittest.defaultTestLoader.loadTestsFromTestCase(SampleTestHTML),
-            unittest.defaultTestLoader.loadTestsFromTestCase(SampleTestLatin1),
-            unittest.defaultTestLoader.loadTestsFromTestCase(SampleTestUnicode),
-            ])
-
-        # Invoke TestRunner
-        buf = StringIO.StringIO()
-        #runner = unittest.TextTestRunner(buf)       #DEBUG: this is the unittest baseline
-        runner = HTMLTestRunner.HTMLTestRunner(
-                    stream=buf,
-                    title='<Demo Test>',
-                    description='This demonstrates the report output by HTMLTestRunner.'
-                    )
-        runner.run(self.suite)
-
-        # Define the expected output sequence. This is imperfect but should
-        # give a good sense of the well being of the test.
-        EXPECTED = u"""
-Demo Test
-
->SampleTest0:
-
->SampleTest1:
-
->SampleTestBasic
->test_1<
->pass<
-basic test
-
->test_2<
->pass<
-basic test
-
->test_3<
->fail<
-AssertionError: basic test
-
->test_4<
->error<
-RuntimeError: basic test
-
-
->SampleTestHTML
->test_1<
->pass<
-'the message is 5 symbols: \\x3C\\x3E\\x26\\"\\'\\n
-plus the HTML entity string: [\\x26copy;] on a second line
-
->test_2<
->pass<
-'the message is 5 symbols: \\x3C\\x3E\\x26\\"\\'\\n
-plus the HTML entity string: [\\x26copy;] on a second line
-
->test_3<
->fail<
-AssertionError: the message is 5 symbols: \\x3C\\x3E\\x26\\"\\'\\n
-plus the HTML entity string: [\\x26copy;] on a second line
-
->test_4<
->error<
-RuntimeError: the message is 5 symbols: \\x3C\\x3E\\x26\\"\\'\\n
-plus the HTML entity string: [\\x26copy;] on a second line
-
-
->SampleTestLatin1
->test_1<
->pass<
-the message is 谩茅铆贸煤
-
->test_2<
->pass<
-the message is 谩茅铆贸煤
-
->test_3<
->fail<
-AssertionError: the message is 谩茅铆贸煤
-
->test_4<
->error<
-RuntimeError: the message is 谩茅铆贸煤
-
-
->SampleTestUnicode
->test_1<
->pass<
-the message is \u8563
-
->test_2<
->pass<
-the message is \u8563
-
->test_3<
->fail<
-AssertionError: \\x3Cunprintable instance object\\x3E
-
->test_4<
->error<
-RuntimeError: \\x3Cunprintable instance object\\x3E
-
-Total
->19<
->10<
->5<
->4<
-</html>
-"""
-        # check out the output
-        byte_output = buf.getvalue()
-        # output the main test output for debugging & demo
-        print byte_output
-        # HTMLTestRunner pumps UTF-8 output
-        output = byte_output.decode('utf-8')
-        self._checkoutput(output,EXPECTED)
-
-
-    def _checkoutput(self,output,EXPECTED):
-        i = 0
-        for lineno, p in enumerate(EXPECTED.splitlines()):
-            if not p:
-                continue
-            j = output.find(p,i)
-            if j < 0:
-                self.fail(safe_str('Pattern not found lineno %s: "%s"' % (lineno+1,p)))
-            i = j + len(p)
-
-
-
-
-##############################################################################
-# Executing this module from the command line
-##############################################################################
-
-import unittest
-if __name__ == "__main__":
-    if len(sys.argv) > 1:
-        argv = sys.argv
-    else:
-        argv=['test_HTMLTestRunner.py', 'Test_HTMLTestRunner']
-    unittest.main(argv=argv)
-    # Testing HTMLTestRunner with HTMLTestRunner would work. But instead
-    # we will use standard library's TextTestRunner to reduce the nesting
-    # that may confuse people.
-    #HTMLTestRunner.main(argv=argv)