Как закрыть всплывающее окно с помощью Selenium VBA - PullRequest
0 голосов
/ 11 марта 2020

Я пытался закрыть всплывающее окно, которое появляется при открытии ссылки.

Я пытался нажать кнопку закрытия во всплывающем окне, используя Xpath, но код продолжает открывать новую страницу, по-видимому щелкнув по неправильной ссылке или около того.

Вот код, который я пробую.

Public Sub scrapeCIL2()
    Dim bot As New WebDriver, btn As Object, i As Long, pageCount As Long

    Dim wins As Variant



    bot.Start "chrome", "https://duproprio.com/en/search/list?search=true&regions%5B0%5D=6&is_for_sale=1&with_builders=1&parent=1&pageNumber=2&sort=-published_at"
    bot.Get "/"
    pageCount = bot.FindElementsByClass("pagination__item").Count
    Application.Wait Now + TimeValue("00:00:02")


    'To click the close button of the popup
    bot.FindElementByXPath("//*[@id='react-component-InfoSessionsPopup']/div/div/div[1]").Click


    bot.Quit

End Sub

Любая помощь, чтобы закрыть это всплывающее окно с помощью Selenium VBA, будет оценена

Ответы [ 2 ]

0 голосов
/ 15 марта 2020

Я бы подождал, пока javascript полностью загрузится Selenium, а затем использовал бы макрос или инструмент RPA, такой как Approboti c, чтобы нажать кнопку закрытия, используя координаты экрана X / Y. Нечто подобное должно работать у вас:

Public Sub scrapeCIL2()
    Dim bot As New WebDriver, btn As Object, i As Long, pageCount As Long
    Set x = CreateObject("AppRobotic.API")
    Dim wins As Variant



    bot.Start "chrome", "https://duproprio.com/en/search/list?search=true&regions%5B0%5D=6&is_for_sale=1&with_builders=1&parent=1&pageNumber=2&sort=-published_at"
    bot.Get "/"
    pageCount = bot.FindElementsByClass("pagination__item").Count
    Application.Wait Now + TimeValue("00:00:02")


    'To click the close button of the popup
    'bot.FindElementByXPath("//*[@id='react-component-InfoSessionsPopup']/div/div/div[1]").Click
    'Move the mouse to X/Y coordinates after looking up popup coordinates with UI Item Explorer
    Call x.MoveCursor(500,500) :
    'Wait one second
    x.Wait(1000) :
    'Click the popup close button
    x.MouseLeftClick() :

    bot.Quit

End Sub
0 голосов
/ 11 марта 2020

Чтобы закрыть всплывающее окно, которое появляется при открытии ссылки , вы можете использовать любую из следующих Стратегий локатора :

  • Использование FindElementByCss():

    bot.FindElementByCss("div.webinar-popup__close").Click
    
  • Использование FindElementByXPath():

    bot.FindElementByXPath("//div[@class='webinar-popup__close']").Click
    
...