ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

winuia-auto 为uiautomation 的替代者, 使用xpath进行定位

2026/10/8 6:45:14 拓冰建站 浏览量
winuia-auto 为uiautomation 的替代者, 使用xpath进行定位 winuia-auto 为uiautomation 的替代者1. 元素检查import winuia as autoauto.InspectElement()提示Ctrl 鼠标悬停到元素上2. 使用xpath定位 - 亚马逊账号登录import re import time import winuia as auto from lxml import etree from winuia import UIXPath def dialog_close(): # 点击弹窗 window auto.WindowControl(ClassNameChrome_WidgetWin_1, RegexName.*Google Chrome) btn_close window.ButtonControl(NameClose, LocalizedControlType按钮) if btn_close.Exists(1): btn_close.SafeClick() def login_judge_xpath(asin): # 亚马逊登录 # 判断是否需要登录 window auto.WindowControl(ClassNameChrome_WidgetWin_1, RegexName.*Google Chrome) # 访问url #browser auto.Browser(window) #window.Restore() #url browser.get_current_url() #print(url) ## href fhttps://www.amazon.com/product-reviews/{asin}/?pageNumber1sortByrecentfilterByStarfour_star #href fhttps://www.amazon.com/product-reviews/{asin} ## 打开新窗口打开新网址 #if product-reviews not in url: #browser.new_tab() #browser.navigate(href, timeout30) #else: #browser.navigate(href, timeout30) xpath UIXPath(window) text2 xpath.find(//Text[contains(Name, Sign in or crea) or contains(Name, 登录)]) time.sleep(5) if not text2.Exists(1): return # 输入邮箱 email xxxx # input_email xpath.find(//Text[contains(Name, Enter mobile number or email) or contains(Name, 输入手机号码或邮箱)]) input_email xpath.find(//Edit[AutomationIdap_email_login]) print(input_email) input_email.Press_Hotkey(ctrl, a) input_email.Press_Hotkey(backspace) auto.SetClipboardText(email) input_email.SetFocus() input_email.Press_Hotkey(ctrl, v) next_btn xpath.find(//Button[NameContinue or Name继续]) next_btn.Click() time.sleep(1.5) # windows 安全中心 cancel_btn xpath.find(//Button[NameCancel or Name取消]) if cancel_btn.Exists(1): cancel_btn.Click() time.sleep(0.5) next_btn.Click() for i in range(10): pwd_edit xpath.find(//Edit[AutomationIdap_password]) if pwd_edit.Exists(1): break time.sleep(1) # 输入密码 passwordxxxx pwd_edit xpath.find(//Edit[AutomationIdap_password]) # window.EditControl(Name密码) pwd_edit.SetFocus() auto.SetClipboardText(password) pwd_edit.Press_Hotkey(ctrl, v) # 点击登录 log_btn xpath.find(//Button[AutomationIdsignInSubmit]) # window.ButtonControl(Name登录) log_btn.Click() # 保存密码弹窗 for i in range(8): no_use window.ButtonControl(Name不用了) if no_use.Exists(1): no_use.Click() break time.sleep(1)