如何在selenium IDE中单击iFrame中的链接
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在selenium IDE中单击iFrame中的链接相关的知识,希望对你有一定的参考价值。
Hello Stackoverflow社区,
我正在使用selenium IDE,我遇到以下问题:我必须将Web内容管理系统中的Web内容从一个文件夹移动到另一个文件夹。因此,我必须单击“选择”按钮以指定目标文件夹,然后打开iframe,我可以在其中浏览文件夹的“树结构”。 原始页面如下所示: 带“选择”按钮的原始页面
-Test(=Parent Folder):
-UniqueTitle
-UniqueTitle2
因为我要添加的文件夹(UniqueTitle2)位于我当前文件夹下面的一个层次结构(我在UniqueTitle中),所以我必须单击父文件夹“TEST”才能返回一个层次结构。这是“TEST”文件夹的链接。
iframe,您可以在其中选择目标文件夹
问题是在iframe下面的原始页面上,与“TEST”文件夹相同的链接作为面包屑存在。因此,如果selenium点击了href链接,它实际上会点击原始页面上的链接,而不是iframe中的链接。
我尝试了以下方法:选择iframe:
storeAttribute|css=iframe.dialog-iframe-node@id|iframeIDE
selectFrame|id=${iframeID}
点击链接:
clickAndWait|link=TEST
clickAndWait|//a[contains(@href,'https://www.companyname.com/language/projectname/manage/maintenance/web-content-management[...]folderid=465576')]
这是iframe的html代码段:
<a href="https://www.companyname.com/language/projectname/manage/maintenance/web-content-management?p_p_id=15&p_p_lifecycle=0&p_p_state=pop_up&p_p_mode=view&_15_struts_action=%2Fjournal%2Fselect_folder&_15_folderId=4655761" data-direction-right="true" data-folder-id="4655761">TEST</a>
如何区分这两者,我的脚本会在iframe中点击?
提前感谢您,如果您需要更多信息,请告诉我们。
你有两个选择:
1. don't use iframe, use div or section instead
使用此方法,您必须将文件选择的代码移动到主页面。使用AJAX将文件列表填充到div。这种方法通常称为单页面应用程序,但您不需要将所有内容都移动到单个页面,只需要将文件选择代码移动到单个页面。
2. set allow-origin header of your iframe to your domain name or *
您应该阅读有关如何设置此HTTP标头的信息。这里有一些参考
- https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS
- https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Origin
可能是How to switch between frames in Selenium WebDriver using Java 的副本
当你想在iframe中做某事时,首先要切换到它。
WebDriver.SwitchTo().Frame(WebDriver.FindElement(By.Id("iframe")));
之后,您可以单击元素。当你想要回来时你可以使用:
WebDriver.SwitchTo().DefaultContent();
我正在使用selenium IDE ...
这可能是一个IDE错误。最初的selenium ide有时会出现iframe问题。
建议:从Kantu或Sideex尝试新的Selenium IDE for Chrome - 两者都有良好的frame / iframe支持(但它们不支持original Selenium IDE的所有命令,因此请测试其中一个是否适合您)。
以上是关于如何在selenium IDE中单击iFrame中的链接的主要内容,如果未能解决你的问题,请参考以下文章
在 iframe 中使用 Selenium:NoSuchElementException