<XCUIElementTypeCell type="XCUIElementTypeCell" enabled="true" visible="true" x="0" y="165" width="320" height="40">
<XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="0" y="165" width="320" height="1">
</XCUIElementTypeOther>
<XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="0" y="165" width="320" height="40">
<XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="0" y="165" width="320" height="40">
</XCUIElementTypeOther>
</XCUIElementTypeOther>
<XCUIElementTypeStaticText type="XCUIElementTypeStaticText" enabled="true" visible="true" x="16" y="165" width="258" height="40" name="Default" label="Default" value="Default">
</XCUIElementTypeStaticText>
<XCUIElementTypeOther type="XCUIElementTypeOther" enabled="true" visible="true" x="16" y="203" width="304" height="2">
</XCUIElementTypeOther>
<XCUIElementTypeButton type="XCUIElementTypeButton" enabled="false" visible="true" x="284" y="176" width="18" height="17" name="checkmark" label="checkmark">
</XCUIElementTypeButton>
</XCUIElementTypeCell>
经过大量的搜索,我使用以下代码从一个较大的xml中提取了这个较小的部分:
xml = $D[device].page_source
doc = Nokogiri::XML(xml)
res = doc.xpath('//*[@name="checkmark"]').first.parent
我的目标是找出复选标记前面的单词,我可以在xml中看到单词Default
,但我无法在代码中确定这一点,我使用Ruby。
你能帮帮我吗?
1条答案
按热度按时间jdzmm42g1#
下面是XPath表达式,用于选择属性为“name”的最后一个元素,该元素位于属性为“name”=“checkmark”的元素之前
你可以试试here
它所做的是,选择name=checkmark的第一个元素(只是为了避免出现多个元素的情况),然后选择其前面具有name的节点并获取第一个(前面的列表按相反顺序排列)