繁体   English   中英

遗留 Selenium IDE - 如何手动制作合适的 xpath

[英]Legacy Selenium IDE - how to make an appropriate xpath manually

我必须处理非常复杂的代码。 我可以在某种程度上创建自己的 xpath。 这对我来说真的很好。 但是现在我被困住了。 我有嵌套的 iframe,它们之间共享非常相同的代码,但 iframe 中的值除外。 所以标签和属性在两个 iframe 中是非常相同的。 我需要使用属性来获取值。 无论我使用哪种 xpath 表达式,Chrome 浏览器中的检查器总是向我显示至少两个完全相同的 img 标签。 我认为我可以在表达式末尾使用方括号中的数字,以便从第二张图像中获取值,但这不起作用。

我唯一想到的就是创建 xpath 从某些 iframe 到我感兴趣的属性。 所以让我们假设我的代码看起来像这样

 <iframe id="iframeID"> <!-- some further code here --> <div id="divID"> <img src="some/picture"> </div> <!-- some further code here --> </iframe>

我尝试像下面发布的那样使用 xpath,但这是不合适的。 Chrome 浏览器中的检查器无法指向我的 xpath。所以我被困在这里。 请帮我。 我的 xpath 构造有什么问题? 我对 xpaths 的了解非常有限,我很确定有人在看到我的 xpath “构造”时会觉得有趣;)我知道它不能工作,Chrome 中的检查员已经证明了这一点。 如何做到这一点? 我想跳过表达式中添加 html 条评论的地方。

storeAttribute | xpath=(//*[@id="iframeID"]//following:://*[@id="divID"]/img)/@src | someVariable

因此,为了使用 iframe 或在 iframe 中播放,您需要在其中移动。 此外,在某些时候,您可能需要移出 iframe。

搬出 iframe

driver.switchTo().defaultContent()

搬进去 iframe

driver.switchTo().frame("frameId/or frameIndex");  

让所有的 iframe 在它们之间移动

iframes = driver.findElements(webdriver.By.tagName('iframe'));

您可以在 iframe 之间循环并完成您的工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM