当前位置: 首页 > 面试题库 >

Selenium WebDriver在切换之前获取当前帧

仇正平
2023-03-14
问题内容

我有一个自定义操作,可以通过切换某些iFrame来查找元素。它使用以下本地操作:
driver.switchTo().frame(requested_frame) 当前,我每次都切换回默认内容,然后再切换到确切的iframe。

现在,我需要通过执行以下计划来提高其性能:

  • 检查当前内容/框架
  • 如果这样,requested_frame=currentFrame则无需切换
  • 如果requested_frame=null然后切换为默认值(如果currentFrame=default再次切换则无需切换)
  • 如果是,requested_frame!=null && requested_frame!=currentFrame则切换为默认设置,然后切换至requested_frame框架。

所以我现在需要的就是获取当前帧。有什么办法可以得到它吗?


问题答案:

作为我自己的问题 “ Selenium WebDriver获取当前框架” 的确切答案,我找到了以下解决方法。

JavascriptExecutor jsExecutor = (JavascriptExecutor)driver;
String currentFrame = jsExecutor.executeScript("return self.name");

但是在这里,JavascriptExecutor每次都会执行命令以获取当前帧。因此,如果考虑性能,我想选择#Saurabh
Gaur
的答案作为最佳答案。希望我的回答对其他人有所帮助:-)

以后添加

我只是用当前版本,全局变量和js命令帮助做了一个小测试。

[ 在2个嵌套iframe中,在4个不同元素中执行动作的时间(毫秒)为1000次。 (总共4000个查找元件动作) ]

|          | Switch everytime | Global variable | JS command | 
|----------|------------------|-----------------|------------| 
|          | 2023             | 1950            | 2911       | 
|          | 1902             | 2091            | 2992       | 
|          | 2014             | 1974            | 3020       | 
|          | 1934             | 1931            | 3097       | 
|          | 1997             | 1965            | 3180       | 
|----------|------------------|-----------------|------------|
| Average  | 1974             | 1982.2          | 3040       |

因此,我的“每次切换默认值”的当前性能都还不错:D



 类似资料:
  • 我在一个分支“测试”中工作,并进行了拉操作,现在我按照原点进行更新。 我签出分支“开发”,它位于源/开发后面,我复制了一些代码更改。现在我运行: 当我在分支“测试”中工作时,我得到了许多未跟踪的文件,而不是暂存的文件。现在我只想签回测试分支并推动我的更改。我的更改很少,所以我可以还原并重做它们。但如何切换分支,因为我遇到了错误: 错误:签出将覆盖以下未跟踪的工作树文件: 所有未标记和未跟踪的文件

  • 问题内容: 我正在使用以下代码来获取当前网址 是否有其他方法可以获取相同的URL,或者可能是获取当前URL的更好方法? 谢谢。 问题答案: 从参考:

  • 问题内容: 我的网站在服务器上 为此,我有两个域, 和 我想使用PHP当前域,但是如果我使用,则可以告诉我 代替: 如何获取域而不是服务器名称? 我有PHP版本5.2。 问题答案: 尝试使用此: 或解析 apache_request_headers()

  • 问题内容: 如何使用Python获取当前网址, 我需要获取当前URL,以便可以检查查询字符串,例如 这也在Google App Engine中运行 问题答案: 尝试这个: 另外,如果您只需要querystring,这将起作用: 最后,如果您知道要查找的querystring变量,则可以执行以下操作:

  • 我在vaadin页面上生成了java项目。我使用的是spring boot和vaadin,有任何选项可以将本地主机上可见的页面:8080从MainView类切换到另一个类吗? 我尝试使用removeAll()实现它;并添加(一些)代码,但当我想在其他类上切换视图时,我不能使用它 我用的是瓦丁13 主要类别代码: @PWA(name="Project Base for Vaadin Flow wit

  • 我正在为我的web应用程序使用Spring MVC。我的bean是在“”文件中编写的