Блокировать неожиданное всплывающее окно с Selenium - PullRequest
0 голосов
/ 13 мая 2018

Я автоматизирую сайт электронной коммерции, но на любой странице появляется неожиданное случайное всплывающее окно.Если я знаю, что на данной веб-странице будет запущено всплывающее окно, я справлюсь с этим.Что мне делать, если это происходит случайно на любой странице?

enter image description here

Я знаю, как заблокировать всплывающее окно, но не могу использовать это в этой ситуации.Из-за этого всплывающего окна мои скрипты не работают.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>

Ответы [ 2 ]

0 голосов
/ 13 мая 2018

Создайте вспомогательный метод с помощью следующего псевдокода: -1. Проверьте, есть ли всплывающее окно.2. Если он обнаружит всплывающее окно, обработайте его.3. Если нет, то вернитесь.Теперь используйте эту функцию в вашем скрипте каждый раз, когда происходит изменение содержимого на экране из-за какого-либо действия.

0 голосов
/ 13 мая 2018

Просмотрите EventFiringWebDriver и WebDriverEventListener и найдите соответствующее всплывающее окно> Допустим, всплывающее окно появляется после нажатия кнопки, вы можете найти его в beforeClickOn и, если оно произойдет, выполнить действие, иначе ничего не делать.

Извините, у меня нет фрагментов кода Java EventFiringWebDriver, которыми можно поделиться

http://seleniumhq.github.io/selenium/docs/api/java/index.html

код из селена github

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/")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...