不选择iframe

时间:2018-10-12 20:13:50

标签: java selenium selenium-webdriver xpath automated-tests

我有一个要查找的元素:

//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

0 个答案:

没有答案