我有一个要查找的元素:
//div[contains(@class, 'bPageBlock')][.//*[.='Agreement Documents']]//div[@class='pbBody']//tr[contains(@class,'dataRow')]//a[text()='View']
问题是,这找到两个元素,而我只想要一个。一个在iframe下,一个不在。如果我想要iframe下的那个,那会很容易。我能做
//iframe///div[contains(@class, 'bPageBlock')][.//*[.='Agreement Documents']]//div[@class='pbBody']//tr[contains(@class,'dataRow')]//a[text()='View']
但是,正如您可能猜到的,我想要一个不在iframe下的对象。我不知道如何指定类似// not iframe //的内容。而且,即使可以,//也会发现比iframe低一点或高一点的东西。
有人建议如何在iframe下找到一个NOT。除此之外的根和路径似乎彼此相同。我尝试了很多不同的东西。
如果要查看特定的iframe:
<iframe frameborder="0" id="RLPanelFrame" name="RLPanelFrame" src="/emptyHtmlDoc.html" title="Hidden Frame - Ignore" style="height: 176px;"></iframe>
然后它下面有很多子单元,它们带有自动生成的无意义的ID。
我不认为我可以使用driver.find()找到每个人,并获得完整的xpath并检查“ iframe”,因为硒没有xpath提取器。我猜对于每个人,我可以一直得到父母,直到我去// html或// iframe,但这会花费很长时间。
有什么建议吗?使用Java和Selenium