2013-11-21 2 views
2
Postcode = driver.findElementByXPath("//div[@id='T_F2']/fieldset/div[1]/div/div[4]/span[2]").Text 

CopytoClip (Postcode) 

Range("b" & X).PasteSpecial xlPasteAll 

В моем коде используется XPath для доступа к почтовому индексу с сайта, прежде чем назначать его переменной. Эта переменная передается в мой экземпляр «Копировать в клип», который обрабатывает копирование значения в буфер обмена моих компьютеров, прежде чем вставлять его в ячейку Excel. Однако проблема заключается в том, что мой код будет запускать вышеуказанные несколько раз для разных веб-страниц, некоторые из них не имеют почтового индекса в указанном XPath.Условно проверка правильности XPath в VBA

Это приводит к сбою кода, поэтому я надеялся, что смогу исправить это с помощью оператора if. Мой вопрос: могу ли я условно искать, существует ли указанный XPath на веб-странице?

Что-то вроде ...

If driver.findElementByXPath("...").DoesNotExist 

Then 

    Run rest of code... 

ответ

2

Если элемент не существует, исключение (или ошибки) будут выброшены. В таких языках, как Java и C#, исключение представляет собой исключение NoSuchElementException.

Что нужно сделать, так это использовать обработку ошибок, чтобы ваш код выполнялся, если элемент не существует. Вот несколько ссылок, чтобы помочь направить вас в правильном направлении:

Example of this problem in Java

Example of error handling in VBA Excel

+1

Понял работает, спасибо! – JimmyK

Смежные вопросы