<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 開發筆記 ## 文件布局 \# 幾乎所有都會使用(并且被認為是塊!) win32defines.py win32functions.py win32structures.py \# 查找窗口及其屬性 findwindows.py handleprops.py \# wrap windows, get extra info for particular controls # set the friendly class name controlscommon\_controls.py controlscontrolactions.py controlshwndwrapper.py controlswin32\_controls.py \# currently depends on the Friendly class name # probably needs to be refactored to make it independent of controls! # maybe move that stuff to \_application\_? findbestmatch.py # currently depends on controls! controlactions.py testsallcontrols.py testsasianhotkey.py testscomboboxdroppedheight.py testscomparetoreffont.py testsleadtrailspaces.py testsmiscvalues.py testsmissalignment.py testsmissingextrastring.py testsoverlapping.py testsrepeatedhotkey.py teststranslation.py teststruncation.py controlproperties.py xml\_helpers.py > FindDialog.py PyDlgCheckerWrapper.py application.py test\_application.py ## 最佳匹配 difflib提供此支持對于菜單,我們很簡單地匹配菜單項的文本。 對于控件來說,故事更復雜,因為我們希望與以下內容相匹配: > * 控制文本(如果存在) > * Friendly Class name > * Control text + Friendly class name (if control text exists) > * (Possibly) closest static + FriendlyClassName e.g. FindWhatCombo, ComboBox1, or Text, TextRiadio, RadioButton2 1. the control itself knows what it should be referred to 2. Need to disambiguate across all controls in the dialog 3. then we need to match ## 屬性解決方案 再想一想...... app.dlg.control 兩個級別 * application.member (Python resolves) an attribute of application object * application.dialog a dialog reference 三個級別 * application.member.attr (Python resolves) another attribute of the previous member * application.dialog.member a member of the dialog object * application.dialog.control a control on the dialog 四個級別(廢棄Python解決) * application.dialog.member.member * application.dialog.control.member 延遲解決成功,舉個例子 ~~~ app.dlg.control.action() ~~~ 如果我們忽略語法和編程錯誤,仍有許多原因導致它失敗。 可能找不到dlg可能無法找到控件dlg或控件可能被禁用 可以在錯誤的對話框中找到對話框和控件(例如在記事本中,您可以使用“確定”按鈕調出2個“頁面設置”對話框) 一個解決方案就是在嘗試找到每個新對話框之前添加一個“睡眠”(以確保它在那里并準備就緒) - 但這將意味著許多不必要的等待。 所以我嘗試的解決方案是: * 在最近的可能時間執行完整的屬性訪問解析 * 如果失敗則等待再試一次 * 在指定的超時失敗后引發原始異常。 這意味著在正常情況下,您沒有不必要的等待 - 并且在失敗的情況下 - 您仍然會收到錯誤的異常。 同時,如果路徑的早期部分成功,則等待盡可能晚地執行解決方案會停止錯誤,但會發現錯誤項。 因此,例如,如果在記事本中找到頁面設置對話框,請打開打印機設置對話框(標題為“頁面設置”)app.PageSetup.Printer.Click() \# 如果運行得太快,它會在下一個對話框打開之前找到當前頁面設置對話框#,但該對話框沒有Properties#按鈕 - 因此會引發錯誤。 #因為我們從一開始就重新運行分辨率,我們找到了新的pagesetup對話框。app.PageSetup.Properties.Click() ## 寫入對話框 我們需要一種確保對話框處于活動狀態而無需訪問控件的方法。 例如 ~~~ app.MainWin.MenuSelect("Something That->Loads a Dialog") app.Dlg._write("dlg.xml") ~~~ 或者更難的問題: ~~~ app.PageSetup.Printer.Click() app.PageSetup._write("pagesetup.xml") ~~~ 在第二個示例中,很難確定是否顯示了正確的頁面設置對話框。 唯一能真正確定的方法是檢查某些控件(ID、類、文本等)的存在性,但最好不要處理這些控件:-( 另一個較少聲明(更神奇?)是掃描可用窗口/控件列表,如果它們沒有改變,則接受顯示正確的窗口/控件。 當測試和擁有XML文件時,我們應該使用這些文件來確保有正確的對話框(通過使用class/id)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看