Вы на самом деле не нажимаете на выпадающий список, затем выбираете значение. Вы просто устанавливаете в раскрывающемся поле значение, которое хотите, чтобы оно было.
Вот мой маленький фрагмент кода, который делает это на сайте, по которому нужно перейти.
Dim element As Selenium.WebElement
Set element = WaitForElement(byName, "Your element ID here")
element.AsSelect.SelectByText "The exact text that's in the drop down"
Первая строка вызывает нижеприведенную функцию - у меня возникли проблемы с тайм-аутом в ожидании загрузки веб-сайта, поэтому я написал это, чтобы иметь возможность интеллектуально ждать, пока страница загрузится, прежде чем разочароваться в том, что элемент не найден.
Во второй строке явно указывается в раскрывающемся списке значение, которое я ищу, - элемент не нажимается и не выбирается.
Private Function WaitForElement(ByVal Method As FindElementBy, ByVal elementID As String) As Selenium.WebElement
Dim startTimer As Single
startTimer = Timer
Dim waitTime As Single
waitTime = this.Driver.Timeouts.ImplicitWait / 100
Dim webBit As Selenium.WebElement
On Error Resume Next 'it is possible that we'll go looking for the element before it's been returned to view, that's fine, we're waiting for it
While webBit Is Nothing And Timer < (startTimer + waitTime)
Select Case Method
Case byClass
Set webBit = this.Driver.FindElementByClass(elementID)
Case byCSS
Set webBit = this.Driver.FindElementByCss(elementID)
Case byID
Set webBit = this.Driver.FindElementById(elementID)
Case byLinkText
Set webBit = this.Driver.FindElementByLinkText(elementID)
Case byName
Set webBit = this.Driver.FindElementByName(elementID)
Case byPartialLinkText
Set webBit = this.Driver.FindElementByPartialLinkText(elementID)
Case byTag
Set webBit = this.Driver.FindElementByTag(elementID)
Case byXPath
Set webBit = this.Driver.FindElementByXPath(elementID)
End Select
Wend
On Error GoTo 0 'resume normal error handling
Set WaitForElement = webBit
End Function