【问题标题】:Selenium can't find dynamicly generated content on ChromeSelenium 在 Chrome 上找不到动态生成的内容
【发布时间】:2015-10-29 22:58:26
【问题描述】:

我在访问 ChromeDriver 上的内容时遇到问题。

Firefox 中,简单的解决方法有帮助:

driver.switch_to_frame(0)

不幸的是 Chrome 我得到 NoSuchFrameException

我认为我的元素是由以下人员创建的:

        <section class="main-section">
            <!-- uiView:  --><div ui-view="" class="ng-scope"><div ng-controller="externalPageController as ctrl" ng-init="init()" class="ng-scope">
                <!-- ngIf: methods.isDefined() --><div ng-if="methods.isDefined()" class="ng-scope">

                <!--[if !IE]>-->
                    <object type="text/html" ng-attr-data="{{objectUrl}}" data="/alert-app"></object>
                <!--<![endif]-->
                </div><!-- end ngIf: methods.isDefined() -->
                </div></div>
        </section>

“main-section” 是我可以访问的最里面的元素。

有没有办法获取 "main-section" 内的元素?

等待他们没有用,我超时了。

【问题讨论】:

  • 打开 chrome 并通过检查 HTML (F12) 检查框架是否存在。框架可能不存在于 chrome 中,或者可能需要更长的时间才能加载
  • 当我尝试检查元素时,仅显示此 HTML。当我第二次单击以检查完整的 HTML 是否已加载。它不取决于时间,而是取决于点击次数。
  • 这很奇怪.. 完整的 HTML 是否包含框架?这种行为在所有浏览器中都一样吗?您点击哪个元素来检查元素?
  • @Striker 没有框架,只有 div。在 Firefox 中,当我单击“检查元素”时,它会变为完整的 HTML。我正在尝试检查“主要部分”内的表女巫行。
  • @Striker 对于 Firefox selenium 驱动程序,它也不能正常工作,我必须使用这个 hack 切换到框架,没有它 Selenium 也看不到所有元素。

标签: selenium selenium-webdriver selenium-chromedriver


【解决方案1】:

我的页面是用框架构建的,但它们不在&lt;frame&gt;&lt;iframe&gt; 标记中,而是作为&lt;object&gt;

我必须找到这个元素并传递给driver.switch_to_frame(object_element),现在 ChromeDriver 工作正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-09
    • 1970-01-01
    • 1970-01-01
    • 2010-11-07
    • 2021-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多