Java 使用Selenium阻止意外弹出窗口

Java 使用Selenium阻止意外弹出窗口,java,selenium-webdriver,Java,Selenium Webdriver,我正在自动化一个电子商务网站,但在任何页面上都会出现意外的随机弹出窗口。如果我知道一个弹出窗口将在给定的网页上启动,我可以处理它。如果它随机出现在任何页面上,我该怎么办 我知道如何阻止弹出窗口,但在这种情况下无法使用。由于此弹出窗口,我的脚本失败。HTML代码: <div class="acsClassicInner" role="document"> <div class="acsLogoSpacer"> <img src="//gate

我正在自动化一个电子商务网站,但在任何页面上都会出现意外的随机弹出窗口。如果我知道一个弹出窗口将在给定的网页上启动,我可以处理它。如果它随机出现在任何页面上,我该怎么办

我知道如何阻止弹出窗口,但在这种情况下无法使用。由于此弹出窗口,我的脚本失败。HTML代码:

<div class="acsClassicInner" role="document">
    <div class="acsLogoSpacer">
        <img src="//gateway.foresee.com/sites/barneys/staging/trigger/sitelogo.gif" class="acsSiteLogo" title="" alt="">
        <img src="https://static.foresee.com/logos/foresee/150_67.png" class="acsNoDisplay" title="ForeSee" alt="ForeSee">
        <div title="ForeSee" alt="ForeSee" class="acsVendorLogoSVG"></div>
    </div>
    <h1 id="fsrHeading">We'd welcome your feedback!</h1>
    <p>Thank you for visiting Barneys.com. You have been selected to participate in a brief customer satisfaction survey to let us know how we can improve your experience.</p>
    <p class="acsNoticeAboutSurvey">The survey is designed to measure your entire experience, please look for it at the <u>conclusion</u> of your visit.</p>
    <p class="acsAttribution">This survey is conducted by an independent company ForeSee, on behalf of the site you are visiting.</p>
    <a href="#" tabindex="2" class="acsInviteButton acsDeclineButton" title="No, thanks" role="button" precog_scanned="true">No, thanks</a>
    <a id="acsFocusFirst" tabindex="3" href="about:blank" target="_blank" class="acsInviteButton acsRightButton acsAcceptButton" title="Yes, I'll give feedback (Opens in a new window)" role="button" precog_scanned="true">Yes, I'll give feedback</a>
</div>

我们欢迎您的反馈!
感谢您访问Barneys.com。您已被选中参加一个简短的客户满意度调查,让我们知道如何改进您的体验

这项调查旨在衡量您的整个体验,请在访问结束时查看

这项调查由一家独立的公司代表您访问的网站进行


查看EventFiringWebDriver和WebDriverEventListener,并查找有问题的弹出窗口>假设弹出窗口发生在按钮单击后,您可以在beforeClickOn中查找,如果确实发生,则执行操作,否则不执行任何操作

抱歉,我没有任何Java EventFiringWebDriver代码片段可供共享

来自SeleniumGitHub的代码

from selenium.webdriver import Firefox
from selenium.webdriver.support.events import EventFiringWebDriver, AbstractEventListener
class MyListener(AbstractEventListener):
    def before_navigate_to(self, url, driver):
        print("Before navigate to %s" % url)
    def after_navigate_to(self, url, driver):
        print("After navigate to %s" % url)

 driver = Firefox()
 ef_driver = EventFiringWebDriver(driver, MyListener())
 ef_driver.get("http://www.google.co.in/")

使用以下伪代码创建帮助方法:-
1.检查是否有弹出窗口。
2.如果发现弹出窗口,则处理它。
3.如果没有,请返回。


现在,每当屏幕上的内容因某些操作而发生变化时,请在脚本中使用此功能。

请参阅:SO的期望是,用户提出问题时,不仅要研究如何回答自己的问题,还要分享研究、代码尝试和结果。这表明你花了时间来帮助自己,它使我们避免重复显而易见的答案,最重要的是,它帮助你得到一个更具体和相关的答案!另请参阅:问题是每次单击都必须使用此方法,这使得代码变得复杂。每次点击我都要一次又一次地使用这个技巧。