#vba #selenium-webdriver #selenium-chromedriver
#vba #selenium-webdriver #selenium-chromedriver
Вопрос:
Пожалуйста, помогите, я пытаюсь запустить код VBA с помощью драйвера selenium chrome.
Моя цель —
Line 1:select a Xpath(control) and enter a value
Line 2:Click on the value that comes below
Line 3:Clear Xpath(control) value
Line 4: select a Xpath(control) and enter a value
Line 5:Click on the value that comes below
Line 6:Clear Xpath(control) value
Строка 5 выдает ошибку Ошибка времени выполнения 10 исключение ссылки на элемент staleelement (элемент, который нужно щелкнуть, имеет то же значение пути, что и в строке 2)
Sub Test()
Dim driver As ChromeDriver
Dim a1 As String
Dim b1 As String
Set driver = New ChromeDriver
driver.Get ("https:mytestenvironment.in")
a1 = "Short ID"
b1 = "CHL Type of leave"
driver.FindElementByXPath("//*[@id='export-custom-columns-autocomplete']/ul/input").SendKeys a1 '- Line1
On Error GoTo -1
driver.FindElementByXPath("//*[@id='export-custom-columns-autocomplete']/ul/div/li[2]").Click '-Line 2
On Error GoTo -1
driver.FindElementByXPath("//*[@id='export-custom-columns-autocomplete']/ul/input").Clear '-Line 3
On Error GoTo -1
driver.FindElementByXPath("//*[@id='export-custom-columns-autocomplete']/ul/input").SendKeys b1 '-Line 4
On Error GoTo -1
driver.FindElementByXPath("//*[@id='export-custom-columns-autocomplete']/ul/div/li[2]").Click '-Line - 5
On Error GoTo -1
driver.FindElementByXPath("//*[@id='export-custom-columns-autocomplete']/ul/input").Clear '-Line - 6
End Sub
Однако после отладки и повторного запуска он работает нормально
Я попытался добавить инструкцию об ошибке, но безрезультатно
Пример кода:
Sub Test()
Dim driver As ChromeDriver
Dim a1 As String
Dim b1 As String
Set driver = New ChromeDriver
driver.Get ("https:mytestenvironment.in")
a1 = "Short ID"
b1 = "CHL Type of leave"
driver.FindElementByXPath("//*[@id='export-custom-columns-autocomplete']/ul/input").SendKeys a1
On Error GoTo -1
driver.FindElementByXPath("//*[@id='export-custom-columns-autocomplete']/ul/div/li[2]").Click
On Error GoTo -1
driver.FindElementByXPath("//*[@id='export-custom-columns-autocomplete']/ul/input").Clear
On Error GoTo -1
driver.FindElementByXPath("//*[@id='export-custom-columns-autocomplete']/ul/input").SendKeys b1
On Error GoTo -1
driver.FindElementByXPath("//*[@id='export-custom-columns-autocomplete']/ul/div/li[2]").Click
On Error GoTo -1
driver.FindElementByXPath("//*[@id='export-custom-columns-autocomplete']/ul/input").Clear
End Sub
Ответ №1:
Исключение устаревшего элемента означает, что элемент присутствует на странице, но экземпляр драйвера не может с ним взаимодействовать
Есть 2 способа решить эту проблему 1. Обновить страницу 2.Do цикл до тех пор, пока элемент не будет нажат
Комментарии:
1. Если я обновлю страницу, элемент будет потерян, поскольку шаг 2 — это тот, который делает видимым элемент на шаге 3, и цикл также не работает