如何在selenium IDE中单击iFrame中的链接

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在selenium IDE中单击iFrame中的链接相关的知识,希望对你有一定的参考价值。

Hello Stackoverflow社区,

我正在使用selenium IDE,我遇到以下问题:我必须将Web内容管理系统中的Web内容从一个文件夹移动到另一个文件夹。因此,我必须单击“选择”按钮以指定目标文件夹,然后打开iframe,我可以在其中浏览文件夹的“树结构”。 原始页面如下所示: 带“选择”按钮的原始页面

enter image description here Web内容管理系统的结构如下:主页

-Test(=Parent Folder):  
        -UniqueTitle  
        -UniqueTitle2  

因为我要添加的文件夹(UniqueTitle2)位于我当前文件夹下面的一个层次结构(我在UniqueTitle中),所以我必须单击父文件夹“TEST”才能返回一个层次结构。这是“TEST”文件夹的链接。

iframe,您可以在其中选择目标文件夹

enter image description here

问题是在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&amp;p_p_lifecycle=0&amp;p_p_state=pop_up&amp;p_p_mode=view&amp;_15_struts_action=%2Fjournal%2Fselect_folder&amp;_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标头的信息。这里有一些参考

另一答案

可能是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问题。

建议:从KantuSideex尝试新的Selenium IDE for Chrome - 两者都有良好的frame / iframe支持(但它们不支持original Selenium IDE的所有命令,因此请测试其中一个是否适合您)。

以上是关于如何在selenium IDE中单击iFrame中的链接的主要内容,如果未能解决你的问题,请参考以下文章

在 iframe 中使用 Selenium:NoSuchElementException

无法单击Selenium IDE中弹出窗口中的按钮

Selenium VBA Excel - 单击 iframe 中的链接时出现问题

我selenium IDE里 模拟按Tab 键

单击警报内的确定按钮(Selenium IDE)

python+selenium如何定位多层iframe中元素