Это не проблема с вашим скриптом, а с ресурсом, который вы запрашиваете. Веб-сервер возвращает «запрещенный» код состояния.
Возможно, он блокирует PHP-скрипты, чтобы предотвратить очистку, или ваш IP-адрес, если вы сделали слишком много запросов.
Вы вероятно, следует поговорить с администратором удаленного сервера.
В качестве альтернативы отличному ответу Мотти, вы также можете Set
переменную, чтобы соответствовать вашему начальному описательному объекту, а затем расширить его по мере необходимости:
Set myPage = Browser("StackOverflow").Page("name:=StackOverflow", "html id:=PageID")
, после чего вы можете использовать
myPage.WebEdit("name:=asdfgh")
во всем остальном коде, пока объект myPage
остается в области видимости ...
Я думаю, что вы ищете объект Description
UFT
Это позволяет вам более детально управлять описанием, поскольку в описательном программировании все значения являются регулярными выражениями, но с [ 113] Вы можете отключить функцию регулярного выражения для определенного свойства.
Set desc = Description.Create()
desc("html tag").Value = "A"
desc("innertext").Value = "More information..."
desc("innertext").RegularExpression = False
Browser("Example Domain").Navigate "www.example.com"
Browser("Example Domain").Page("Example Domain").WebElement(desc).Click
Если вы хотите представить это с помощью простой строки, тогда это немного больше проблемы, вы можете написать вспомогательную функцию, но я не уверен, что рекомендую это.
Function Desc(descString)
Set ret = Description.Create()
values = Split(descString, "::")
For Each value In values
keyVal = Split(value, ":=")
ret(keyVal(0)).Value = keyVal(1)
Next
Set Desc = ret
End Function
' Usage
Browser("StackOverflow").Page("StackOverflow").WebElement(Desc("html tag:=H2::innertext:=some text")).Click
Дальнейшее чтение о дескриптивном программировании .