首页 > 解决方案 > 如何使用 Selenium WebDriver处理标签内的 AJAX 弹出窗口?

问题描述

这是我标签内的代码

          <a id="wishlistlogin" href="/user/login?destination=%2Fsearch%2Flocations%2Fwidget%3Fparam1%3D55217%26param2%3D1%26param3%3D0%26paramOthers%3D398.07B911S" class="use-ajax login-popup-form" data-dialog-type="modal" dialogclass="popup-dialog-class"><div class="add-to-wishlist">LOGIN TO ADD TO 
                                               <div class="available-at"><p></p><a id="available_copy">Available:  1 Copy</a></div><!-- case request able is false but force show (1) -->

   <div class="callnumber" style="border:0px solid red !important"><p></p><b>Call #: </b>398.07B911S</div>

我尝试了多种方式 Javascript Executor 和 AJAX 调用,但我无法点击“LOGIN TO ADD WISHLIST”

我的网址“ https://preview.queenslibrary.org/search/everything?searchField= *&category=everything&searchFilter= ”

并单击小部件右侧的第一张卡片快速查看窗格“登录以添加愿望清单”

请问有什么建议吗?

标签: selenium-webdriver

解决方案


此元素嵌套在 iframe 中,您需要先切换到它(widgetObj):

您的 iframe 层次结构

找到 iframe 后,您需要通过以下方式切换到它:

driver.switchTo().frame(frame_locator)

进入正确的框架后,您可以找到链接By

By.id("wishlistlogin")

然后可以与元素进行交互。


推荐阅读