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

如何使用Selenium WebDriver在框架集中导航子帧?

汝吕恭
2023-03-14
问题内容

我需要从表“
td”中获取结果。但是在执行此操作之前,我需要浏览包含它的框架。框架是属于mainFrame的框架集元素之一。我尝试使用所有类型的导航“子”子帧,但均不起作用:

 driver.switchTo().defaultContent();
    Thread.sleep(1000);
     driver.switchTo().frame("mainFrame.0.fr_resultsNav~ResultsMaxGroupTemplate0.9766101221774707");
    driver.switchTo().frame("main.Frame.1.fr_resultsNav~ResultsMaxGroupTemplate0.8811790466176727");

// even: driver.switchTo().frame("mainFrame.0.fs_main");

以下是该网页的简要布局:

<frame src="banner.asp" name="topFrame" scrolling="no" noresize="noresize" id="topFrame" title="topFrame">

<frame src="" name="mainFrame" id="mainFrame" title="mainFrame" wd_frame_id_="5f4c10bc7e0960070bfda831655b8b0c">

    <frameset id="fs_main" border="0" frameborder="no" framespacing="0" rows="70,87,*">
.....................

        <frameset id="fs_content" cols="23%,*" framespacing="0" frameborder="no">
.....................
            <frameset cols="*,9" id="LeftFrameSet" framespacing="0" frameborder="no">
.....................
            <frame frameborder="0" name="fr_classification~ResultsMaxGroupTemplate0.609021034867735" title="Results Classification Frame" id="fr_classification~ResultsMaxGroupTemplate0.609021034867735" src="/lnacui2api/results/shared/waitMessage.do?wmibIdRand=61_T16938265013_rand_1363544453847" scrolling="Auto" onload="paintResultsBorder('ResultsMaxGroupTemplate0.609021034867735');">

....................

<form name="results_listview_ResultsListForm" method="post" action="/lnacui2api/results/listview/listview.do" id="results_listview_ResultsListForm">

..........

<td nowrap="" height="20"> <span id="new">&nbsp;All Results</span> (294)</td>
</form>

....................

在导航子帧之前是否需要导航框架集?我阅读了文档。所有的Internet示例都给出了一个简单的示例代码:driver.switchTo()。frame(“
mainFrame.0.child”)。在这种情况下不起作用。请看一下上面的脚本


问题答案:

我同意,您不能直接切换到子框架。另外,每次要切换框时,请确保切换到defaultContentdriver.switchTo.defaultContent)。对于您的示例,driver.switchTo().frame("mainFrame.0.child")-–也可以,但是您需要除去不必要的引号。



 类似资料:
  • 问题内容: 我正在使用带有嵌套框架的页面,但是无法访问子框架。HTML源代码的简要概述: 我需要访问名为“ mid2”的框架。该框架嵌套在框架集内,而框架集又嵌套在主框架集内。 我尝试了以下代码,但它们确实有效 我是否缺少明显的东西? 我已经检查了此链接,但未阐明我的问题。 谢谢 问题答案: 试试这个: 您遇到的问题是javascript只能与它看到的当前框架一起使用。 在子框架中,因此看不到您是

  • 问题内容: 我有一个Objective- C框架(框架A),该框架公开了一些公共和私有标头。公共头文件也在框架的伞头文件中声明。我有第二个Swift框架(框架B),它与Objective- C框架链接。 现在,如果要在BI中导入A的公共标头,只需要做一个即可。 但是,如何导入私有标头呢? 我知道桥接头不是一个选择,因为框架不支持该头。我是否需要以某种方式为专用标头创建一个单独的伞形标头? 问题答案

  • 问题内容: 我如何在seleniumwebdriver 3.0 beta版本中使用geckodriver。当我实例化Firefox时: 我得到错误: 线程“主”中的异常java.lang.IllegalStateException:驱动程序可执行文件的路径必须由webdriver.gecko.driver系统属性设置;否则,必须执行以下操作:有关更多信息,请参见 https://github.co

  • 我正在我的应用程序中尝试导航架构组件。早些时候,我使用片段事务来实现以下功能。基本上,我想从导航。 碎片- 如果我正在使用导航组件并尝试 然后结果是FragmentA被FragmentB替换并且背景片段不可见。 我想知道一个解决方案,如果导航架构组件允许的话。 附言:我听说过嵌套导航主机,但从内部使用它好吗。 更新: FragmentB将有进一步交易的行动,例如: 碎片- 当用户按下后退按钮时,片

  • EasyWeChat 是一个通用的 Composer 包,所以不需要对框架单独做修改,只要支持 Composer 就能直接使用,当然了,为了更方便的使用,我们收集了以下框架单独提供的拓展包: Laravel overtrue/laravel-wechat Symfony lilocon/WechatBundle Yii jianyan74/yii2-easy-wechat 适用于 EasyWeCh

  • QueryList无框架依赖,可以灵活的嵌入到任何项目中去。 在使用Composer管理的项目中安装 在非Composer管理的项目中安装 QueryList可以集成到任何框架中去使用,无需做任何修改,直接使用Composer安装到项目中去即可。 在使用Composer管理的项目中安装 如果项目框架本身就是使用Composer来管理包的话,直接在项目根目录执行Composer安装命令后,即可在项目