折腾:
【未解决】iOS自动化安装app:给当前WiFi去掉代理以及自动安装app后再恢复之前代理
期间,已经可以进入配置代理页面了:
接着去调试:
xml
<XCUIElementTypeTable type="XCUIElementTypeTable" enabled="true" visible="true" x="0" y="0" width="414" height="736"> <XCUIElementTypeCell type="XCUIElementTypeCell" enabled="true" visible="true" x="0" y="99" width="414" height="45"> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="false" x="0" y="99" width="414" height="1"/> <XCUIElementTypeStaticText type="XCUIElementTypeStaticText" value="关闭" name="关闭" label="关闭" enabled="true" visible="true" x="20" y="99" width="374" height="45"/> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="20" y="143" width="394" height="1"/> </XCUIElementTypeCell> <XCUIElementTypeCell type="XCUIElementTypeCell" enabled="true" visible="true" x="0" y="144" width="414" height="45"> <XCUIElementTypeStaticText type="XCUIElementTypeStaticText" value="手动" name="手动" label="手动" enabled="true" visible="true" x="20" y="144" width="350" height="45"/> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="20" y="188" width="394" height="1"/> <XCUIElementTypeButton type="XCUIElementTypeButton" name="更多信息" label="更多信息" enabled="false" visible="true" x="380" y="161" width="14" height="11"/> </XCUIElementTypeCell> <XCUIElementTypeCell type="XCUIElementTypeCell" enabled="true" visible="true" x="0" y="189" width="414" height="45"> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="0" y="233" width="414" height="1"/> <XCUIElementTypeStaticText type="XCUIElementTypeStaticText" value="自动" name="自动" label="自动" enabled="true" visible="true" x="20" y="189" width="374" height="45"/> </XCUIElementTypeCell> <XCUIElementTypeCell type="XCUIElementTypeCell" enabled="true" visible="true" x="0" y="269" width="414" height="46"> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="0" y="269" width="414" height="1"/> <XCUIElementTypeTextField type="XCUIElementTypeTextField" value="192.168.31.46" name="服务器" label="服务器" enabled="true" visible="true" x="92" y="281" width="294" height="21"/> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="15" y="313" width="305" height="1"/> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="20" y="313" width="394" height="2"/> </XCUIElementTypeCell> <XCUIElementTypeCell type="XCUIElementTypeCell" enabled="true" visible="true" x="0" y="314" width="414" height="46"> <XCUIElementTypeTextField type="XCUIElementTypeTextField" value="8081" name="端口" label="端口" enabled="true" visible="true" x="74" y="326" width="312" height="22"/> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="15" y="358" width="305" height="2"/> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="20" y="359" width="394" height="1"/> </XCUIElementTypeCell> <XCUIElementTypeCell type="XCUIElementTypeCell" value="0" enabled="true" visible="true" x="0" y="359" width="414" height="46"> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="0" y="404" width="414" height="1"/> <XCUIElementTypeStaticText type="XCUIElementTypeStaticText" value="鉴定" name="鉴定" label="鉴定" enabled="true" visible="true" x="20" y="359" width="323" height="46"/> <XCUIElementTypeSwitch type="XCUIElementTypeSwitch" value="0" name="鉴定" label="鉴定" enabled="true" visible="true" x="343" y="366" width="51" height="32"/> </XCUIElementTypeCell> </XCUIElementTypeTable>
3个列表的cell:
- 关闭
- 手动
- 自动
以及下面的:
- 服务器
- value=”192.168.31.46″
- type=”XCUIElementTypeTextField”
- 端口
- value=”8081″
- type=”XCUIElementTypeTextField”
- 鉴定
- value=”0″
- type=”XCUIElementTypeSwitch”
但是当前选了哪个,貌似没有明显的标识
只能看到是:
手动 有额外的:
name=”更多信息” 的 XCUIElementTypeButton
算了, 去手动点击切换成 关闭,看看情况:
xml
<XCUIElementTypeTable type="XCUIElementTypeTable" enabled="true" visible="true" x="0" y="0" width="414" height="736"> <XCUIElementTypeCell type="XCUIElementTypeCell" enabled="true" visible="true" x="0" y="99" width="414" height="45"> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="0" y="99" width="414" height="1"/> <XCUIElementTypeStaticText type="XCUIElementTypeStaticText" value="关闭" name="关闭" label="关闭" enabled="true" visible="true" x="20" y="99" width="350" height="45"/> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="20" y="143" width="394" height="1"/> <XCUIElementTypeButton type="XCUIElementTypeButton" name="更多信息" label="更多信息" enabled="false" visible="true" x="380" y="116" width="14" height="11"/> </XCUIElementTypeCell> <XCUIElementTypeCell type="XCUIElementTypeCell" enabled="true" visible="true" x="0" y="144" width="414" height="45"> <XCUIElementTypeStaticText type="XCUIElementTypeStaticText" value="手动" name="手动" label="手动" enabled="true" visible="true" x="20" y="144" width="374" height="45"/> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="20" y="188" width="394" height="1"/> </XCUIElementTypeCell> <XCUIElementTypeCell type="XCUIElementTypeCell" enabled="true" visible="true" x="0" y="189" width="414" height="45"> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="0" y="233" width="414" height="1"/> <XCUIElementTypeStaticText type="XCUIElementTypeStaticText" value="自动" name="自动" label="自动" enabled="true" visible="true" x="20" y="189" width="374" height="45"/> </XCUIElementTypeCell> </XCUIElementTypeTable>
看起来像是:
当前选择了哪个,哪个有额外的:
name=”更多信息”的XCUIElementTypeButton
再去切换到自动:
xml
<XCUIElementTypeTable type="XCUIElementTypeTable" enabled="true" visible="true" x="0" y="0" width="414" height="736"> <XCUIElementTypeCell type="XCUIElementTypeCell" enabled="true" visible="true" x="0" y="99" width="414" height="45"> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="false" x="0" y="99" width="414" height="1"/> <XCUIElementTypeStaticText type="XCUIElementTypeStaticText" value="关闭" name="关闭" label="关闭" enabled="true" visible="true" x="20" y="99" width="374" height="45"/> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="20" y="143" width="394" height="1"/> </XCUIElementTypeCell> <XCUIElementTypeCell type="XCUIElementTypeCell" enabled="true" visible="true" x="0" y="144" width="414" height="45"> <XCUIElementTypeStaticText type="XCUIElementTypeStaticText" value="手动" name="手动" label="手动" enabled="true" visible="true" x="20" y="144" width="374" height="45"/> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="20" y="188" width="394" height="1"/> </XCUIElementTypeCell> <XCUIElementTypeCell type="XCUIElementTypeCell" enabled="true" visible="true" x="0" y="189" width="414" height="45"> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="0" y="233" width="414" height="1"/> <XCUIElementTypeStaticText type="XCUIElementTypeStaticText" value="自动" name="自动" label="自动" enabled="true" visible="true" x="20" y="189" width="350" height="45"/> <XCUIElementTypeButton type="XCUIElementTypeButton" name="更多信息" label="更多信息" enabled="false" visible="true" x="380" y="206" width="14" height="11"/> </XCUIElementTypeCell> <XCUIElementTypeCell type="XCUIElementTypeCell" enabled="true" visible="true" x="0" y="269" width="414" height="46"> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="0" y="269" width="414" height="1"/> <XCUIElementTypeTextField type="XCUIElementTypeTextField" name="URL" label="URL" enabled="true" visible="true" x="72" y="281" width="314" height="21"/> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="0" y="313" width="414" height="2"/> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="15" y="313" width="305" height="1"/> </XCUIElementTypeCell> </XCUIElementTypeTable>
的确是:
此处选择了:
自动
其中就多出一个:
name=”更多信息”的XCUIElementTypeButton
然后去写代码:
期间,再去优化,把 从 parent的cell,获取 子节点中 proxy的type的name,去优化成独立函数,供2处调用:
def iOSFindChildProxyTypeName(self, parentCellSoup): """from parent cell soup, find child proxy type node's name Args: parentCellSoup (soup): Beautifulsoup soup of parent XCUIElementTypeCell Returns: str/None: str: 手动/自动/关闭 None: not found Raises: """ proxyTypeName = None # some cases: """ 设置 无线局域网 详情页 代理 关闭: <XCUIElementTypeCell type="XCUIElementTypeCell" enabled="true" visible="true" x="0" y="695" width="414" height="46"> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="0" y="695" width="414" height="1"/> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="false" x="0" y="740" width="414" height="1"/> <XCUIElementTypeStaticText type="XCUIElementTypeStaticText" value="配置代理" name="配置代理" label="配置代理" enabled="true" visible="true" x="20" y="708" width="70" height="21"/> <XCUIElementTypeStaticText type="XCUIElementTypeStaticText" value="关闭" name="关闭" label="关闭" enabled="true" visible="true" x="341" y="708" width="35" height="21"/> <XCUIElementTypeButton type="XCUIElementTypeButton" name="更多信息" label="更多信息" enabled="false" visible="true" x="386" y="711" width="8" height="14"/> </XCUIElementTypeCell> 设置 无线局域网 详情页 代理 手动: <XCUIElementTypeCell type="XCUIElementTypeCell" enabled="true" visible="true" x="0" y="695" width="414" height="46"> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="0" y="695" width="414" height="1"/> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="false" x="0" y="740" width="414" height="1"/> <XCUIElementTypeStaticText type="XCUIElementTypeStaticText" value="配置代理" name="配置代理" label="配置代理" enabled="true" visible="true" x="20" y="708" width="70" height="21"/> <XCUIElementTypeStaticText type="XCUIElementTypeStaticText" value="手动" name="手动" label="手动" enabled="true" visible="true" x="341" y="708" width="35" height="21"/> <XCUIElementTypeButton type="XCUIElementTypeButton" name="更多信息" label="更多信息" enabled="false" visible="true" x="386" y="711" width="8" height="14"/> </XCUIElementTypeCell> 设置 无线局域网 配置代理 手动: <XCUIElementTypeCell type="XCUIElementTypeCell" enabled="true" visible="true" x="0" y="144" width="414" height="45"> <XCUIElementTypeStaticText type="XCUIElementTypeStaticText" value="手动" name="手动" label="手动" enabled="true" visible="true" x="20" y="144" width="350" height="45"/> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="20" y="188" width="394" height="1"/> <XCUIElementTypeButton type="XCUIElementTypeButton" name="更多信息" label="更多信息" enabled="false" visible="true" x="380" y="161" width="14" height="11"/> </XCUIElementTypeCell> 设置 无线局域网 配置代理 关闭: <XCUIElementTypeCell type="XCUIElementTypeCell" enabled="true" visible="true" x="0" y="99" width="414" height="45"> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="0" y="99" width="414" height="1"/> <XCUIElementTypeStaticText type="XCUIElementTypeStaticText" value="关闭" name="关闭" label="关闭" enabled="true" visible="true" x="20" y="99" width="350" height="45"/> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="20" y="143" width="394" height="1"/> <XCUIElementTypeButton type="XCUIElementTypeButton" name="更多信息" label="更多信息" enabled="false" visible="true" x="380" y="116" width="14" height="11"/> </XCUIElementTypeCell> 设置 无线局域网 配置代理 自动: <XCUIElementTypeCell type="XCUIElementTypeCell" enabled="true" visible="true" x="0" y="189" width="414" height="45"> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="0" y="233" width="414" height="1"/> <XCUIElementTypeStaticText type="XCUIElementTypeStaticText" value="自动" name="自动" label="自动" enabled="true" visible="true" x="20" y="189" width="350" height="45"/> <XCUIElementTypeButton type="XCUIElementTypeButton" name="更多信息" label="更多信息" enabled="false" visible="true" x="380" y="206" width="14" height="11"/> </XCUIElementTypeCell> """ proxyTypeP = re.compile("(手动)|(自动)|(关闭)") proxyTypeSoup = parentCellSoup.find( 'XCUIElementTypeStaticText', attrs={"type": "XCUIElementTypeStaticText", "value": proxyTypeP, "enabled":"true", "visible":"true"}, ) proxySoupAttrDict = proxyTypeSoup.attrs proxyTypeName = proxySoupAttrDict.get("value") return proxyTypeName
调用:
parentCellSoup = morenInfoSoup.parent # proxyTypeP = re.compile("(手动)|(自动)|(关闭)") # proxyTypeSoup = parentCellSoup.find( # 'XCUIElementTypeStaticText', # attrs={"type": "XCUIElementTypeStaticText", "value": proxyTypeP, "enabled":"true", "visible":"true"}, # ) proxyTypeName = self.iOSFindChildProxyTypeName(parentCellSoup)
和:
# proxyTypeP = re.compile("(手动)|(自动)|(关闭)") # proxyTypeSoup = parentCellSoup.find( # 'XCUIElementTypeStaticText', # attrs={"type": "XCUIElementTypeStaticText", "value": proxyTypeP, "enabled":"true", "visible":"true"}, # ) proxyTypeName = self.iOSFindChildProxyTypeName(parentCellSoup)
然后去写代码:
def iOSDisableWiFiProxy(self): """in 代理配置 page, change from 手动 to 关闭, while get previous proxy config info""" isDisableOk = False respInfo = None """ 设置 无线局域网 配置代理 手动: <XCUIElementTypeTable type="XCUIElementTypeTable" enabled="true" visible="true" x="0" y="0" width="414" height="736"> <XCUIElementTypeCell type="XCUIElementTypeCell" enabled="true" visible="true" x="0" y="99" width="414" height="45"> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="false" x="0" y="99" width="414" height="1"/> <XCUIElementTypeStaticText type="XCUIElementTypeStaticText" value="关闭" name="关闭" label="关闭" enabled="true" visible="true" x="20" y="99" width="374" height="45"/> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="20" y="143" width="394" height="1"/> </XCUIElementTypeCell> <XCUIElementTypeCell type="XCUIElementTypeCell" enabled="true" visible="true" x="0" y="144" width="414" height="45"> <XCUIElementTypeStaticText type="XCUIElementTypeStaticText" value="手动" name="手动" label="手动" enabled="true" visible="true" x="20" y="144" width="350" height="45"/> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="20" y="188" width="394" height="1"/> <XCUIElementTypeButton type="XCUIElementTypeButton" name="更多信息" label="更多信息" enabled="false" visible="true" x="380" y="161" width="14" height="11"/> </XCUIElementTypeCell> <XCUIElementTypeCell type="XCUIElementTypeCell" enabled="true" visible="true" x="0" y="189" width="414" height="45"> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="0" y="233" width="414" height="1"/> <XCUIElementTypeStaticText type="XCUIElementTypeStaticText" value="自动" name="自动" label="自动" enabled="true" visible="true" x="20" y="189" width="374" height="45"/> </XCUIElementTypeCell> <XCUIElementTypeCell type="XCUIElementTypeCell" enabled="true" visible="true" x="0" y="269" width="414" height="46"> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="0" y="269" width="414" height="1"/> <XCUIElementTypeTextField type="XCUIElementTypeTextField" value="192.168.31.46" name="服务器" label="服务器" enabled="true" visible="true" x="92" y="281" width="294" height="21"/> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="15" y="313" width="305" height="1"/> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="20" y="313" width="394" height="2"/> </XCUIElementTypeCell> <XCUIElementTypeCell type="XCUIElementTypeCell" enabled="true" visible="true" x="0" y="314" width="414" height="46"> <XCUIElementTypeTextField type="XCUIElementTypeTextField" value="8081" name="端口" label="端口" enabled="true" visible="true" x="74" y="326" width="312" height="22"/> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="15" y="358" width="305" height="2"/> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="20" y="359" width="394" height="1"/> </XCUIElementTypeCell> <XCUIElementTypeCell type="XCUIElementTypeCell" value="0" enabled="true" visible="true" x="0" y="359" width="414" height="46"> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="0" y="404" width="414" height="1"/> <XCUIElementTypeStaticText type="XCUIElementTypeStaticText" value="鉴定" name="鉴定" label="鉴定" enabled="true" visible="true" x="20" y="359" width="323" height="46"/> <XCUIElementTypeSwitch type="XCUIElementTypeSwitch" value="0" name="鉴定" label="鉴定" enabled="true" visible="true" x="343" y="366" width="51" height="32"/> </XCUIElementTypeCell> </XCUIElementTypeTable> 设置 无线局域网 配置代理 关闭: <XCUIElementTypeTable type="XCUIElementTypeTable" enabled="true" visible="true" x="0" y="0" width="414" height="736"> <XCUIElementTypeCell type="XCUIElementTypeCell" enabled="true" visible="true" x="0" y="99" width="414" height="45"> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="0" y="99" width="414" height="1"/> <XCUIElementTypeStaticText type="XCUIElementTypeStaticText" value="关闭" name="关闭" label="关闭" enabled="true" visible="true" x="20" y="99" width="350" height="45"/> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="20" y="143" width="394" height="1"/> <XCUIElementTypeButton type="XCUIElementTypeButton" name="更多信息" label="更多信息" enabled="false" visible="true" x="380" y="116" width="14" height="11"/> </XCUIElementTypeCell> <XCUIElementTypeCell type="XCUIElementTypeCell" enabled="true" visible="true" x="0" y="144" width="414" height="45"> <XCUIElementTypeStaticText type="XCUIElementTypeStaticText" value="手动" name="手动" label="手动" enabled="true" visible="true" x="20" y="144" width="374" height="45"/> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="20" y="188" width="394" height="1"/> </XCUIElementTypeCell> <XCUIElementTypeCell type="XCUIElementTypeCell" enabled="true" visible="true" x="0" y="189" width="414" height="45"> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="0" y="233" width="414" height="1"/> <XCUIElementTypeStaticText type="XCUIElementTypeStaticText" value="自动" name="自动" label="自动" enabled="true" visible="true" x="20" y="189" width="374" height="45"/> </XCUIElementTypeCell> </XCUIElementTypeTable> 设置 无线局域网 配置代理 自动: <XCUIElementTypeTable type="XCUIElementTypeTable" enabled="true" visible="true" x="0" y="0" width="414" height="736"> <XCUIElementTypeCell type="XCUIElementTypeCell" enabled="true" visible="true" x="0" y="99" width="414" height="45"> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="false" x="0" y="99" width="414" height="1"/> <XCUIElementTypeStaticText type="XCUIElementTypeStaticText" value="关闭" name="关闭" label="关闭" enabled="true" visible="true" x="20" y="99" width="374" height="45"/> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="20" y="143" width="394" height="1"/> </XCUIElementTypeCell> <XCUIElementTypeCell type="XCUIElementTypeCell" enabled="true" visible="true" x="0" y="144" width="414" height="45"> <XCUIElementTypeStaticText type="XCUIElementTypeStaticText" value="手动" name="手动" label="手动" enabled="true" visible="true" x="20" y="144" width="374" height="45"/> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="20" y="188" width="394" height="1"/> </XCUIElementTypeCell> <XCUIElementTypeCell type="XCUIElementTypeCell" enabled="true" visible="true" x="0" y="189" width="414" height="45"> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="0" y="233" width="414" height="1"/> <XCUIElementTypeStaticText type="XCUIElementTypeStaticText" value="自动" name="自动" label="自动" enabled="true" visible="true" x="20" y="189" width="350" height="45"/> <XCUIElementTypeButton type="XCUIElementTypeButton" name="更多信息" label="更多信息" enabled="false" visible="true" x="380" y="206" width="14" height="11"/> </XCUIElementTypeCell> <XCUIElementTypeCell type="XCUIElementTypeCell" enabled="true" visible="true" x="0" y="269" width="414" height="46"> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="0" y="269" width="414" height="1"/> <XCUIElementTypeTextField type="XCUIElementTypeTextField" name="URL" label="URL" enabled="true" visible="true" x="72" y="281" width="314" height="21"/> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="0" y="313" width="414" height="2"/> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="15" y="313" width="305" height="1"/> </XCUIElementTypeCell> </XCUIElementTypeTable> """ # check current proxy type: 手动/自动/关闭 curPageXml = self.get_page_source() soup = CommonUtils.xmlToSoup(curPageXml) morenInfoChainList = [ { "tag": "XCUIElementTypeTable", "attrs": self.FullScreenAttrDict }, { "tag": "XCUIElementTypeCell", "attrs": {"enabled":"true", "visible":"true", "x":"0", "width":"%s" % self.X} }, { "tag": "XCUIElementTypeButton", # "attrs": {"enabled":"false", "visible":"true", "name": "更多信息"} "attrs": {"visible":"true", "name": "更多信息"} }, ] morenInfoSoup = CommonUtils.bsChainFind(soup, morenInfoChainList) if not morenInfoSoup: respInfo = errMsg = "Fail to find 更多信息 in config proxy page" return isDisableOk, respInfo parentCellSoup = morenInfoSoup.parent # proxyTypeP = re.compile("(手动)|(自动)|(关闭)") # proxyTypeSoup = parentCellSoup.find( # 'XCUIElementTypeStaticText', # attrs={"type": "XCUIElementTypeStaticText", "value": proxyTypeP, "enabled":"true", "visible":"true"}, # ) proxyTypeName = self.iOSFindChildProxyTypeName(parentCellSoup) if not proxyTypeName: respInfo = errMsg = "Fail to find current proxy type name in config proxy page" return isDisableOk, respInfo if proxyTypeName == "关闭": # no need change proxy isDisableOk = True respInfo = None return isDisableOk, respInfo elif proxyTypeName == "自动": respInfo = errMsg = "Not support of current proxy config type value %s" % proxyTypeName return isDisableOk, respInfo elif proxyTypeName == "手动": parentTableSoup = parentCellSoup.parent # get current proxy config info # proxyServer = None # proxyPort = None # proxyAuthenticate = None # <XCUIElementTypeTextField type="XCUIElementTypeTextField" value="192.168.31.46" name="服务器" label="服务器" enabled="true" visible="true" x="92" y="281" width="294" height="21"/> proxyServerSoup = parentTableSoup.find( 'XCUIElementTypeTextField', attrs={"type": "XCUIElementTypeTextField", "name": "服务器", "enabled":"true", "visible":"true"}, ) if not proxyServerSoup: respInfo = errMsg = "Fail to find proxy server value in proxy config page" return isDisableOk, respInfo proxyServer = proxyServerSoup.attr.get("value", None) # <XCUIElementTypeTextField type="XCUIElementTypeTextField" value="8081" name="端口" label="端口" enabled="true" visible="true" x="74" y="326" width="312" height="22"/> proxyPortSoup = parentTableSoup.find( 'XCUIElementTypeTextField', attrs={"type": "XCUIElementTypeTextField", "name": "端口", "enabled":"true", "visible":"true"}, ) if not proxyPortSoup: respInfo = errMsg = "Fail to find proxy port value in proxy config page" return isDisableOk, respInfo proxyPort = proxyPortSoup.attr.get("value", None) # <XCUIElementTypeSwitch type="XCUIElementTypeSwitch" value="0" name="鉴定" label="鉴定" enabled="true" visible="true" x="343" y="366" width="51" height="32"/> proxyAuthenticateSoup = arentTableSoup.find( 'XCUIElementTypeSwitch', attrs={"type": "XCUIElementTypeSwitch", "name": "鉴定", "enabled":"true", "visible":"true"}, ) if not proxyAuthenticateSoup: respInfo = errMsg = "Fail to find proxy authenticate value in proxy config page" return isDisableOk, respInfo proxyAuthenticate = proxyAuthenticateSoup.attr.get("value", None) curProxyInfo = { "server": proxyServer, "port": proxyPort, "authenticate": proxyAuthenticate, } logging.info("curProxyInfo=%s", curProxyInfo) # need find and click 关闭, then click 存储 proxyCloseSoup = parentTableSoup.find( 'XCUIElementTypeStaticText', attrs={"type": "XCUIElementTypeStaticText", "value": "关闭", "enabled":"true", "visible":"true"}, ) if not proxyCloseSoup: respInfo = errMsg = "Fail to find 关闭 in proxy config page" return isDisableOk, respInfo clickedCloseOk = self.clickElementCenterPosition(proxyCloseSoup) if not clickedCloseOk: respInfo = errMsg = "Fail to click 关闭 in proxy config page" return isDisableOk, respInfo isDisableOk = True respInfo = curProxyInfo return isDisableOk, respInfo
调用:
# proxyTypeSoup = self.iOSGetCurrentWiFiProxyType() proxyTypeName = self.iOSGetCurrentWiFiProxyTypeName() # if not proxyTypeSoup: if not proxyTypeName: respInfo = "Not find current WiFi proxy config type" return isProcessdOk, respInfo if proxyTypeName == "关闭": # no need change proxy isProcessdOk = True respInfo = None # means no proxy return isProcessdOk, respInfo elif proxyTypeName == "手动": # need into config page, to get it value, then reconfig to 关闭 clickedOk = self.clickElementCenterPosition(proxyTypeSoup) if not clickedOk: respInfo = "Fail to click 配置代理 当前值:%s" % proxyTypeName return isProcessdOk, respInfo isChangeToDisableOk, respInfo = self.iOSDisableWiFiProxy() if not isChangeToDisableOk: errMsg = respInfo respInfo = "Fail to change proxy config from 手动 to 关闭, reason: %s" % errMsg return isProcessdOk, respInfo else: logging.info("Successfully change proxy config from 手动 to 关闭, previous proxy info: %s", prevProxyInfo) isProcessdOk = True proxyInfo = respInfo respInfo = proxyInfo return isProcessdOk, respInfo else: # proxyTypeName == "自动" respInfo = "Not support of current proxy config type value %s" % proxyTypeName return isProcessdOk, respInfo
去调试
可以解析出 proxy信息
curProxyInfo={'server': '192.168.31.46', 'port': '8081', 'authenticate': '0'}
也可以找到并点击 关闭:
然后此处,右上角出现 存储 变成蓝色 ,希望去点击到
继续去调试:
xml
<XCUIElementTypeNavigationBar type="XCUIElementTypeNavigationBar" name="配置代理" enabled="true" visible="true" x="0" y="20" width="414" height="44"> <XCUIElementTypeButton type="XCUIElementTypeButton" name="xxx_guest_5G" label="xxx_guest_5G" enabled="true" visible="true" x="0" y="20" width="155" height="44"/> <XCUIElementTypeOther type="XCUIElementTypeOther" name="配置代理" label="配置代理" enabled="true" visible="true" x="172" y="31" width="70" height="21"/> <XCUIElementTypeButton type="XCUIElementTypeButton" name="存储" label="存储" enabled="true" visible="true" x="359" y="20" width="43" height="44"/> </XCUIElementTypeNavigationBar>
很规整,去写代码
# click 存储 to save """ 设置 WiFi 配置代理 从手动切换到 关闭 存储: <XCUIElementTypeNavigationBar type="XCUIElementTypeNavigationBar" name="配置代理" enabled="true" visible="true" x="0" y="20" width="414" height="44"> <XCUIElementTypeButton type="XCUIElementTypeButton" name="xxx_guest_5G" label="xxx_guest_5G" enabled="true" visible="true" x="0" y="20" width="155" height="44"/> <XCUIElementTypeOther type="XCUIElementTypeOther" name="配置代理" label="配置代理" enabled="true" visible="true" x="172" y="31" width="70" height="21"/> <XCUIElementTypeButton type="XCUIElementTypeButton" name="存储" label="存储" enabled="true" visible="true" x="359" y="20" width="43" height="44"/> </XCUIElementTypeNavigationBar> """ parentNaviBarClassChain = "/XCUIElementTypeNavigationBar[`name = '配置代理' AND rect.x = 0 AND rect.width = %d`]" % self.X storeButtonQuery = {"type":"XCUIElementTypeButton", "name": "存储", "enabled": "true"} storeButtonQuery["parent_class_chains"] = [ parentNaviBarClassChain ] foundAndClickedStore = self.findAndClickElement(query=storeButtonQuery, timeout=0.1) if not foundAndClickedStore: respInfo = "Fail to find and click 存储 in proxy config page" return isDisableOk, respInfo
调试
可以找到并点击 存储 去保存
页面返回 WiFi详情页
【总结】
此处目前代码是:
isDisableOk, respInfo = self.iOSDisableWiFiProxy() if not isDisableOk: errMsg = respInfo respInfo = "Fail to disable proxy, reason: %s" % errMsg return isProcessdOk, respInfo else: proxyInfo = respInfo logging.info("Successfully disable proxy, existed proxy info: %s", proxyInfo) isProcessdOk = True respInfo = proxyInfo return isProcessdOk, respInfo 。。。 def iOSDisableWiFiProxy(self): """in 代理配置 page, change from 手动 to 关闭, while get previous proxy config info""" isDisableOk = False respInfo = None """ 设置 无线局域网 配置代理 手动: <XCUIElementTypeTable type="XCUIElementTypeTable" enabled="true" visible="true" x="0" y="0" width="414" height="736"> <XCUIElementTypeCell type="XCUIElementTypeCell" enabled="true" visible="true" x="0" y="99" width="414" height="45"> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="false" x="0" y="99" width="414" height="1"/> <XCUIElementTypeStaticText type="XCUIElementTypeStaticText" value="关闭" name="关闭" label="关闭" enabled="true" visible="true" x="20" y="99" width="374" height="45"/> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="20" y="143" width="394" height="1"/> </XCUIElementTypeCell> <XCUIElementTypeCell type="XCUIElementTypeCell" enabled="true" visible="true" x="0" y="144" width="414" height="45"> <XCUIElementTypeStaticText type="XCUIElementTypeStaticText" value="手动" name="手动" label="手动" enabled="true" visible="true" x="20" y="144" width="350" height="45"/> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="20" y="188" width="394" height="1"/> <XCUIElementTypeButton type="XCUIElementTypeButton" name="更多信息" label="更多信息" enabled="false" visible="true" x="380" y="161" width="14" height="11"/> </XCUIElementTypeCell> <XCUIElementTypeCell type="XCUIElementTypeCell" enabled="true" visible="true" x="0" y="189" width="414" height="45"> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="0" y="233" width="414" height="1"/> <XCUIElementTypeStaticText type="XCUIElementTypeStaticText" value="自动" name="自动" label="自动" enabled="true" visible="true" x="20" y="189" width="374" height="45"/> </XCUIElementTypeCell> <XCUIElementTypeCell type="XCUIElementTypeCell" enabled="true" visible="true" x="0" y="269" width="414" height="46"> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="0" y="269" width="414" height="1"/> <XCUIElementTypeTextField type="XCUIElementTypeTextField" value="192.168.31.46" name="服务器" label="服务器" enabled="true" visible="true" x="92" y="281" width="294" height="21"/> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="15" y="313" width="305" height="1"/> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="20" y="313" width="394" height="2"/> </XCUIElementTypeCell> <XCUIElementTypeCell type="XCUIElementTypeCell" enabled="true" visible="true" x="0" y="314" width="414" height="46"> <XCUIElementTypeTextField type="XCUIElementTypeTextField" value="8081" name="端口" label="端口" enabled="true" visible="true" x="74" y="326" width="312" height="22"/> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="15" y="358" width="305" height="2"/> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="20" y="359" width="394" height="1"/> </XCUIElementTypeCell> <XCUIElementTypeCell type="XCUIElementTypeCell" value="0" enabled="true" visible="true" x="0" y="359" width="414" height="46"> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="0" y="404" width="414" height="1"/> <XCUIElementTypeStaticText type="XCUIElementTypeStaticText" value="鉴定" name="鉴定" label="鉴定" enabled="true" visible="true" x="20" y="359" width="323" height="46"/> <XCUIElementTypeSwitch type="XCUIElementTypeSwitch" value="0" name="鉴定" label="鉴定" enabled="true" visible="true" x="343" y="366" width="51" height="32"/> </XCUIElementTypeCell> </XCUIElementTypeTable> 设置 无线局域网 配置代理 关闭: <XCUIElementTypeTable type="XCUIElementTypeTable" enabled="true" visible="true" x="0" y="0" width="414" height="736"> <XCUIElementTypeCell type="XCUIElementTypeCell" enabled="true" visible="true" x="0" y="99" width="414" height="45"> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="0" y="99" width="414" height="1"/> <XCUIElementTypeStaticText type="XCUIElementTypeStaticText" value="关闭" name="关闭" label="关闭" enabled="true" visible="true" x="20" y="99" width="350" height="45"/> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="20" y="143" width="394" height="1"/> <XCUIElementTypeButton type="XCUIElementTypeButton" name="更多信息" label="更多信息" enabled="false" visible="true" x="380" y="116" width="14" height="11"/> </XCUIElementTypeCell> <XCUIElementTypeCell type="XCUIElementTypeCell" enabled="true" visible="true" x="0" y="144" width="414" height="45"> <XCUIElementTypeStaticText type="XCUIElementTypeStaticText" value="手动" name="手动" label="手动" enabled="true" visible="true" x="20" y="144" width="374" height="45"/> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="20" y="188" width="394" height="1"/> </XCUIElementTypeCell> <XCUIElementTypeCell type="XCUIElementTypeCell" enabled="true" visible="true" x="0" y="189" width="414" height="45"> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="0" y="233" width="414" height="1"/> <XCUIElementTypeStaticText type="XCUIElementTypeStaticText" value="自动" name="自动" label="自动" enabled="true" visible="true" x="20" y="189" width="374" height="45"/> </XCUIElementTypeCell> </XCUIElementTypeTable> 设置 无线局域网 配置代理 自动: <XCUIElementTypeTable type="XCUIElementTypeTable" enabled="true" visible="true" x="0" y="0" width="414" height="736"> <XCUIElementTypeCell type="XCUIElementTypeCell" enabled="true" visible="true" x="0" y="99" width="414" height="45"> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="false" x="0" y="99" width="414" height="1"/> <XCUIElementTypeStaticText type="XCUIElementTypeStaticText" value="关闭" name="关闭" label="关闭" enabled="true" visible="true" x="20" y="99" width="374" height="45"/> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="20" y="143" width="394" height="1"/> </XCUIElementTypeCell> <XCUIElementTypeCell type="XCUIElementTypeCell" enabled="true" visible="true" x="0" y="144" width="414" height="45"> <XCUIElementTypeStaticText type="XCUIElementTypeStaticText" value="手动" name="手动" label="手动" enabled="true" visible="true" x="20" y="144" width="374" height="45"/> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="20" y="188" width="394" height="1"/> </XCUIElementTypeCell> <XCUIElementTypeCell type="XCUIElementTypeCell" enabled="true" visible="true" x="0" y="189" width="414" height="45"> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="0" y="233" width="414" height="1"/> <XCUIElementTypeStaticText type="XCUIElementTypeStaticText" value="自动" name="自动" label="自动" enabled="true" visible="true" x="20" y="189" width="350" height="45"/> <XCUIElementTypeButton type="XCUIElementTypeButton" name="更多信息" label="更多信息" enabled="false" visible="true" x="380" y="206" width="14" height="11"/> </XCUIElementTypeCell> <XCUIElementTypeCell type="XCUIElementTypeCell" enabled="true" visible="true" x="0" y="269" width="414" height="46"> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="0" y="269" width="414" height="1"/> <XCUIElementTypeTextField type="XCUIElementTypeTextField" name="URL" label="URL" enabled="true" visible="true" x="72" y="281" width="314" height="21"/> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="0" y="313" width="414" height="2"/> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="15" y="313" width="305" height="1"/> </XCUIElementTypeCell> </XCUIElementTypeTable> """ # check current proxy type: 手动/自动/关闭 curPageXml = self.get_page_source() soup = CommonUtils.xmlToSoup(curPageXml) morenInfoChainList = [ { "tag": "XCUIElementTypeTable", "attrs": self.FullScreenAttrDict }, { "tag": "XCUIElementTypeCell", "attrs": {"enabled":"true", "visible":"true", "x":"0", "width":"%s" % self.X} }, { "tag": "XCUIElementTypeButton", # "attrs": {"enabled":"false", "visible":"true", "name": "更多信息"} "attrs": {"visible":"true", "name": "更多信息"} }, ] morenInfoSoup = CommonUtils.bsChainFind(soup, morenInfoChainList) if not morenInfoSoup: respInfo = "Fail to find 更多信息 in config proxy page" return isDisableOk, respInfo parentCellSoup = morenInfoSoup.parent # proxyTypeP = re.compile("(手动)|(自动)|(关闭)") # proxyTypeSoup = parentCellSoup.find( # 'XCUIElementTypeStaticText', # attrs={"type": "XCUIElementTypeStaticText", "value": proxyTypeP, "enabled":"true", "visible":"true"}, # ) proxyTypeName = self.iOSFindChildProxyType(parentCellSoup) if not proxyTypeName: respInfo = "Fail to find current proxy type name in config proxy page" return isDisableOk, respInfo if proxyTypeName == "关闭": # no need change proxy isDisableOk = True respInfo = None return isDisableOk, respInfo elif proxyTypeName == "自动": respInfo = "Not support of current proxy config type value %s" % proxyTypeName return isDisableOk, respInfo elif proxyTypeName == "手动": parentTableSoup = parentCellSoup.parent # get current proxy config info # proxyServer = None # proxyPort = None # proxyAuthenticate = None # <XCUIElementTypeTextField type="XCUIElementTypeTextField" value="192.168.31.46" name="服务器" label="服务器" enabled="true" visible="true" x="92" y="281" width="294" height="21"/> proxyServerSoup = parentTableSoup.find( 'XCUIElementTypeTextField', attrs={"type": "XCUIElementTypeTextField", "name": "服务器", "enabled":"true", "visible":"true"}, ) if not proxyServerSoup: respInfo = "Fail to find proxy server value in proxy config page" return isDisableOk, respInfo proxyServer = proxyServerSoup.attrs.get("value", None) # '192.168.31.46' # <XCUIElementTypeTextField type="XCUIElementTypeTextField" value="8081" name="端口" label="端口" enabled="true" visible="true" x="74" y="326" width="312" height="22"/> proxyPortSoup = parentTableSoup.find( 'XCUIElementTypeTextField', attrs={"type": "XCUIElementTypeTextField", "name": "端口", "enabled":"true", "visible":"true"}, ) if not proxyPortSoup: respInfo = "Fail to find proxy port value in proxy config page" return isDisableOk, respInfo proxyPort = proxyPortSoup.attrs.get("value", None) # '8081' # <XCUIElementTypeSwitch type="XCUIElementTypeSwitch" value="0" name="鉴定" label="鉴定" enabled="true" visible="true" x="343" y="366" width="51" height="32"/> proxyAuthenticateSoup = parentTableSoup.find( 'XCUIElementTypeSwitch', attrs={"type": "XCUIElementTypeSwitch", "name": "鉴定", "enabled":"true", "visible":"true"}, ) if not proxyAuthenticateSoup: respInfo = "Fail to find proxy authenticate value in proxy config page" return isDisableOk, respInfo proxyAuthenticate = proxyAuthenticateSoup.attrs.get("value", None) # '0' curProxyInfo = { "server": proxyServer, "port": proxyPort, "authenticate": proxyAuthenticate, } logging.info("curProxyInfo=%s", curProxyInfo) # curProxyInfo={'server': '192.168.31.46', 'port': '8081', 'authenticate': '0'} # need find and click 关闭, then click 存储 proxyCloseSoup = parentTableSoup.find( 'XCUIElementTypeStaticText', attrs={"type": "XCUIElementTypeStaticText", "value": "关闭", "enabled":"true", "visible":"true"}, ) if not proxyCloseSoup: respInfo = "Fail to find 关闭 in proxy config page" return isDisableOk, respInfo clickedCloseOk = self.clickElementCenterPosition(proxyCloseSoup) if not clickedCloseOk: respInfo = "Fail to click 关闭 in proxy config page" return isDisableOk, respInfo # click 存储 to save """ 设置 WiFi 配置代理 从手动切换到 关闭 存储: <XCUIElementTypeNavigationBar type="XCUIElementTypeNavigationBar" name="配置代理" enabled="true" visible="true" x="0" y="20" width="414" height="44"> <XCUIElementTypeButton type="XCUIElementTypeButton" name="xxx_guest_5G" label="xxx_guest_5G" enabled="true" visible="true" x="0" y="20" width="155" height="44"/> <XCUIElementTypeOther type="XCUIElementTypeOther" name="配置代理" label="配置代理" enabled="true" visible="true" x="172" y="31" width="70" height="21"/> <XCUIElementTypeButton type="XCUIElementTypeButton" name="存储" label="存储" enabled="true" visible="true" x="359" y="20" width="43" height="44"/> </XCUIElementTypeNavigationBar> """ parentNaviBarClassChain = "/XCUIElementTypeNavigationBar[`name = '配置代理' AND rect.x = 0 AND rect.width = %d`]" % self.X storeButtonQuery = {"type":"XCUIElementTypeButton", "name": "存储", "enabled": "true"} storeButtonQuery["parent_class_chains"] = [ parentNaviBarClassChain ] foundAndClickedStore = self.findAndClickElement(query=storeButtonQuery, timeout=0.1) if not foundAndClickedStore: respInfo = "Fail to find and click 存储 in proxy config page" return isDisableOk, respInfo isDisableOk = True respInfo = curProxyInfo return isDisableOk, respInfo def iOSFindChildProxyType(self, parentCellSoup, isReturnSoup=False): """from parent cell soup, find child proxy type node / node's name Args: parentCellSoup (soup): Beautifulsoup soup of parent XCUIElementTypeCell isReturnSoup (bool): return soup if true, otherwise return soup's name Returns: str/soup: str: 手动/自动/关闭 soup: soup node Raises: """ # proxyTypeName = None # some cases: """ 设置 无线局域网 详情页 代理 关闭: <XCUIElementTypeCell type="XCUIElementTypeCell" enabled="true" visible="true" x="0" y="695" width="414" height="46"> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="0" y="695" width="414" height="1"/> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="false" x="0" y="740" width="414" height="1"/> <XCUIElementTypeStaticText type="XCUIElementTypeStaticText" value="配置代理" name="配置代理" label="配置代理" enabled="true" visible="true" x="20" y="708" width="70" height="21"/> <XCUIElementTypeStaticText type="XCUIElementTypeStaticText" value="关闭" name="关闭" label="关闭" enabled="true" visible="true" x="341" y="708" width="35" height="21"/> <XCUIElementTypeButton type="XCUIElementTypeButton" name="更多信息" label="更多信息" enabled="false" visible="true" x="386" y="711" width="8" height="14"/> </XCUIElementTypeCell> 设置 无线局域网 详情页 代理 手动: <XCUIElementTypeCell type="XCUIElementTypeCell" enabled="true" visible="true" x="0" y="695" width="414" height="46"> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="0" y="695" width="414" height="1"/> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="false" x="0" y="740" width="414" height="1"/> <XCUIElementTypeStaticText type="XCUIElementTypeStaticText" value="配置代理" name="配置代理" label="配置代理" enabled="true" visible="true" x="20" y="708" width="70" height="21"/> <XCUIElementTypeStaticText type="XCUIElementTypeStaticText" value="手动" name="手动" label="手动" enabled="true" visible="true" x="341" y="708" width="35" height="21"/> <XCUIElementTypeButton type="XCUIElementTypeButton" name="更多信息" label="更多信息" enabled="false" visible="true" x="386" y="711" width="8" height="14"/> </XCUIElementTypeCell> 设置 无线局域网 配置代理 手动: <XCUIElementTypeCell type="XCUIElementTypeCell" enabled="true" visible="true" x="0" y="144" width="414" height="45"> <XCUIElementTypeStaticText type="XCUIElementTypeStaticText" value="手动" name="手动" label="手动" enabled="true" visible="true" x="20" y="144" width="350" height="45"/> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="20" y="188" width="394" height="1"/> <XCUIElementTypeButton type="XCUIElementTypeButton" name="更多信息" label="更多信息" enabled="false" visible="true" x="380" y="161" width="14" height="11"/> </XCUIElementTypeCell> 设置 无线局域网 配置代理 关闭: <XCUIElementTypeCell type="XCUIElementTypeCell" enabled="true" visible="true" x="0" y="99" width="414" height="45"> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="0" y="99" width="414" height="1"/> <XCUIElementTypeStaticText type="XCUIElementTypeStaticText" value="关闭" name="关闭" label="关闭" enabled="true" visible="true" x="20" y="99" width="350" height="45"/> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="20" y="143" width="394" height="1"/> <XCUIElementTypeButton type="XCUIElementTypeButton" name="更多信息" label="更多信息" enabled="false" visible="true" x="380" y="116" width="14" height="11"/> </XCUIElementTypeCell> 设置 无线局域网 配置代理 自动: <XCUIElementTypeCell type="XCUIElementTypeCell" enabled="true" visible="true" x="0" y="189" width="414" height="45"> <XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="0" y="233" width="414" height="1"/> <XCUIElementTypeStaticText type="XCUIElementTypeStaticText" value="自动" name="自动" label="自动" enabled="true" visible="true" x="20" y="189" width="350" height="45"/> <XCUIElementTypeButton type="XCUIElementTypeButton" name="更多信息" label="更多信息" enabled="false" visible="true" x="380" y="206" width="14" height="11"/> </XCUIElementTypeCell> """ proxyTypeP = re.compile("(手动)|(自动)|(关闭)") proxyTypeSoup = parentCellSoup.find( 'XCUIElementTypeStaticText', attrs={"type": "XCUIElementTypeStaticText", "value": proxyTypeP, "enabled":"true", "visible":"true"}, ) if isReturnSoup: return proxyTypeSoup else: proxySoupAttrDict = proxyTypeSoup.attrs proxyTypeName = proxySoupAttrDict.get("value") return proxyTypeName # '手动'
即可实现:
在WiFi的 配置代理 页面,从之前的手动 ,切换到 关闭
且记录保留下之前手动时的wifi的代理信息
供后续使用。