【发布时间】:2019-04-11 16:57:15
【问题描述】:
对于我现在正在测试的门户,我遇到了无法创建任何 xpath 定位器的问题,一段时间后我发现这是因为“#document”,这会切断路径并使简单“复制 xpath”将路径指向完全不同的元素。
<iframe id="FRAMENAME" src="/webclient/workspace/launch-task/REMbl?ds=BP" width="100%" height="100%" frameborder="0" data-navitemname="navitemname" style="" xpath="1">
#document
<html>
CODE....
</html>
我找到了解决方案,只需像这样添加一个 switchTo:
driver.switchTo().frame("FRAMENAME");
这可以正常工作并使其余代码正常工作,但是需要一些额外的时间来处理此命令,直到代码移动到下一行。
所以我想问一下,有没有更好的解决方案?更智能/更快的东西?
我担心当我有很多脚本的时候,执行时间会太长。
例如,我不使用 id 定位器,因为它们都是动态的,所以有时需要 xpath。
谢谢!
【问题讨论】:
-
这是访问
<iframe>内元素的唯一方法。您可以将代码发布到code review,也许有人会看到您可以改进的地方。 -
您好,感谢您的回答,门户不是我们开发的,因此很难更改代码,我们正在开发一个工具来处理这个问题,这个测试的目的是检查信息已正确导入。其余的测试代码运行得很快,唯一的一点是速度变慢了,但无论如何我会在那里发布以防万一。谢谢!
-
我建议您在此处发布代码,而不是在网站上发布 :)。转换需要多少时间,我从来没有监禁过它。
-
啊,好吧,呵呵,这取决于屏幕,但我会说每次切换需要 4 到 6 秒,所以在我需要与不同帧交互的测试用例中,这会增加执行时间,目前这不是什么大问题,但将来可能需要太长时间。感谢您的帮助!
标签: javascript selenium selenium-webdriver iframe protractor