我需要在具有给定文本的第一个兄弟XCUIElementTypeCell
和第二个兄弟XCUIElementTypeOther
之间找到兄弟姐妹XCUIElementTypeOther
,其中还有文字(参见图片),但是在搜索时我们不知道这个文本(所以我们假设它没有唯一的属性)。我试着写这样的东西:
//XCUIElementTypeCell/XCUIElementTypeStaticText[preceding::XCUIElementTypeOther[./XCUIElementTypeStaticText[@name="' + text + '"]]][following::XCUIElementTypeOther[./XCUIElementTypeStaticText][1]]
但它不起作用(在第一个之后查找所有兄弟XCUIElementTypeCell
)。我无法弄清楚如何在xpath中定义。
我试图在已经提出的问题中找到答案,但尝试失败了。
答案 0 :(得分:2)
您应该只能测试第一个preceding-sibling::XCUIElementTypeOther
,其子XCUIElementTypeStaticText
的属性name
的值为text
变量......
//XCUIElementTypeCell[preceding-sibling::XCUIElementTypeOther[1][XCUIElementTypeStaticText/@name="' + text + '"]]
例如使用此输入...
<doc>
<XCUIElementTypeCell>1</XCUIElementTypeCell>
<XCUIElementTypeCell>2</XCUIElementTypeCell>
<XCUIElementTypeCell>3</XCUIElementTypeCell>
<XCUIElementTypeOther>
<XCUIElementTypeStaticText name="not me"/>
</XCUIElementTypeOther>
<XCUIElementTypeCell>4</XCUIElementTypeCell>
<XCUIElementTypeCell>5</XCUIElementTypeCell>
<XCUIElementTypeCell>6</XCUIElementTypeCell>
<XCUIElementTypeCell>7</XCUIElementTypeCell>
<XCUIElementTypeOther>
<XCUIElementTypeStaticText name="pick me"/>
</XCUIElementTypeOther>
<XCUIElementTypeCell>8</XCUIElementTypeCell>
<XCUIElementTypeCell>9</XCUIElementTypeCell>
<XCUIElementTypeCell>10</XCUIElementTypeCell>
<XCUIElementTypeCell>11</XCUIElementTypeCell>
<XCUIElementTypeOther>
<XCUIElementTypeStaticText name="not me"/>
</XCUIElementTypeOther>
<XCUIElementTypeCell>12</XCUIElementTypeCell>
<XCUIElementTypeCell>13</XCUIElementTypeCell>
<XCUIElementTypeCell>14</XCUIElementTypeCell>
<XCUIElementTypeCell>15</XCUIElementTypeCell>
</doc>
使用此XPath ...
//XCUIElementTypeCell[preceding-sibling::XCUIElementTypeOther[1][XCUIElementTypeStaticText/@name="pick me"]]
选定的XCUIElementTypeCell
元素将是......
<XCUIElementTypeCell>8</XCUIElementTypeCell>
<XCUIElementTypeCell>9</XCUIElementTypeCell>
<XCUIElementTypeCell>10</XCUIElementTypeCell>
<XCUIElementTypeCell>11</XCUIElementTypeCell>
答案 1 :(得分:1)
以下表达式应该起作用
//XCUIElementTypeOther[XCUIElementTypeStaticText/@name = 'your text here']/following-sibling::XCUIElementTypeOther[1]/preceding-sibling::XCUIElementTypeCell