gpt4 book ai didi

javascript - 无法选择 iframe 内的元素

转载 作者:行者123 更新时间:2023-12-02 06:32:05 25 4
gpt4 key购买 nike

我正在尝试编写一个需要访问 iframe 中元素的测试。 (想象一个有 20 把椅子的房间,每把椅子都是它自己的对象,我需要能够使用这些椅子)。使用开发人员工具和元素查找器,它只突出显示 iframe,但不允许我访问。我对测试非常陌生,所以我很茫然。

高亮iframe时html中的元素是这样的:

<iframe name="daasFrame" class="daas-surface" frameborder="0" width="100%" height="100%" ng-src="/Drawing/EventDiagram/e020c975-6f1f-4c6c-bf34-34fa7221c8f3/?venueId=&amp;seatingStyle=theater&amp;language=en&amp;units=Imperial&amp;theme=default&amp;shiftHeader=true"
src="/Drawing/EventDiagram/e020c975-6f1f-4c6c-bf34-34fa7221c8f3/?venueId=&amp;seatingStyle=theater&amp;language=en&amp;units=Imperial&amp;theme=default&amp;shiftHeader=true"></iframe>

我认为仅在测试中我就可以切换到,但是我不知道将调用哪些元素进行交互。

最佳答案

在使用我的自动化测试套件时,我遇到了一个实例,我需要在 iFrame 之外采取行动并验证是否在 iFrame 内部发生了适当的更改。为了便于在帧之间来回跳转,我在页面对象中设置了 2 个函数,一个用于跳转到 iFrame,另一个用于跳转回主窗口。


为了跳转到 iFrame,我使用了这个:

browser.switchTo().frame(0);

要切换回主窗口,我使用了这个:

browser.switchTo().defaultContent();

一旦我进入 iFrame,只要它是一个 AngularJS 页面,我就不必做任何特别的事情。所有 element(by.___()) 查询都引用 iFrame 并在其中进行搜索。如果它是一个标准网站,您需要在测试中使用未包装的 Selenium 语法 (http://ng-learn.org/2014/02/Protractor_Testing_With_Angular_And_Non_Angular_Sites/)。


你也可以试试这个来切换到特定的帧:

browser.switchTo().frame(element(by.className('daas-surface')));

关于javascript - 无法选择 iframe 内的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32652813/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com