Неожиданное поведение Selenium после выбора из выпадающего списка - PullRequest
0 голосов
/ 17 октября 2018

Я написал сценарий Selenium в VBA, чтобы выбрать его из выпадающего списка, затем нажмите кнопку Done.

По умолчанию на странице отображается Bangladesh на целевой странице.Мне нужно изменить его на Canada.

Мой сценарий выбирает нужную страну из выпадающего списка, но когда он должен нажать кнопку Done, он щелкает в другом месте, поэтому страна остается неизменной.Скрипт не отображает никаких ошибок.

Ссылка на сайт:

Sub SelectDropdown()
    Dim driver As New ChromeDriver

    With driver
        .get "https://www.amazon.com/dp/B071V5DQ56/"
        .FindElementByCss("#nav-packard-glow-loc-icon", timeout:=5000).Click
        .FindElementByCss("#GLUXCountryListDropdown", timeout:=5000).Click
        .FindElementById("GLUXCountryList", timeout:=5000).AsSelect.SelectByText "Canada"
        .FindElementByCss("div.a-popover-wrapper button[name='glowDoneButton']", timeout:=5000).Click
    End With
    Stop
End Sub

Это то, что он показывает на целевой странице.

enter image description here

1 Ответ

0 голосов
/ 17 октября 2018

Похоже, перед финальным щелчком нужно немного передохнуть.

Option Explicit
Public Sub SelectDropdown()
    Dim driver As New ChromeDriver
    With driver
        .get "https://www.amazon.com/dp/B071V5DQ56/"
        .FindElementByCss("#nav-packard-glow-loc-icon", timeout:=5000).Click
        .FindElementByCss("#GLUXCountryListDropdown", timeout:=5000).Click
        .FindElementById("GLUXCountryList", timeout:=5000).AsSelect.SelectByText "Canada"
        Application.Wait Now + TimeSerial(0, 0, 1)
        .FindElementByCss("[data-action='a-popover-close']", timeout:=5000).Click
    End With
End Sub
...