2017-02-16 3 views
0

Как написать код, чтобы щелкнуть по этой кнопке «Catálogo»?Нажмите на кнопку

кнопки и HTML код изображения:

Мой код до сих пор:

'This will load a webpage in IE 
Dim i As Long 
Dim URL As String 
Dim IE As Object 
Dim objElement As Object 
Dim objCollection As Object 

'Create InternetExplorer Object 
Set IE = CreateObject("InternetExplorer.Application") 

'Set IE.Visible = True to make IE visible, or False for IE to run in the background 
IE.Visible = True 

'Define URL 
URL = "https://www.wix.com/my-account/sites/0761466b-a270-4ab2-a3b3-e7498df11329/app/1380b703-ce81-ff05-f115-39571d94dfcd?referralInfo=DA_Wix%20Stores" 

'Navigate to URL 
IE.navigate URL 

' Statusbar let's user know website is loading 
Application.StatusBar = URL & " is loading. Please wait..." 

' Wait while IE loading... 
'IE ReadyState = 4 signifies the webpage has loaded (the first loop is set to avoid inadvertently skipping over the second loop) 
Do While IE.readyState = 4: DoEvents: Loop 'Do While 
Do Until IE.readyState = 4: DoEvents: Loop 'Do Until 

'Webpage Loaded 
Application.StatusBar = URL & " Loaded" 

'Unload IE 
Set objElement = Nothing 
Set objCollection = Nothing 

'Click on desired button 
With IE.document 
    Set elems = .getElementsByTagName(" ") 
      elems.Click 
End With 

Имя тега является пустым, потому что я пробовал много вещей, и ни один из них не работал.

+0

Ваша проблема в том, что вы не знаете, что передать в 'getElementsByTagName'? Или что-то другое? Пожалуйста, уточните свой вопрос. –

ответ

0

Соответствующий элемент не является на самом деле button или <input type=button/>, а скорее a элемент, или якорь элемент.

Имейте в виду, что getElementsByTagName вернет все элементы a на странице; вы, вероятно, хотите только определенного элемента.

Если вы установили IE11, вы можете вызвать querySelector, передавая селектор CSS:

With IE.document 
    Dim elem As Object 
    Set elem = .querySelector("#etpa-iframe > html > body > store-manager > div > side-bar > div > navigation > ul") 
    elem.click 
End With 

Если вы хотите, чтобы выбрать второй li под navigation, вы можете использовать селектор :nth-child:

Set elem = .querySelector("#etpa-iframe > html > body > store-manager > div > side-bar > div > navigation > ul > li:nth-child(2) > a") 
+0

Он возвращает ошибку "424" - Требуется объект, вы знаете почему? Я заметил, что у него есть # документ прямо перед тегом html, а также он должен заканчиваться с первым тегом a, который находится внутри второго тега li, который находится внутри ul, как вы упомянули, поэтому код будет продолжать ... навигация> ul> li> a. Как я упоминаю эту позицию? Я пробовал комбинации .queryselectorall ("") (i), но не работал. Благодарим за помощь Зев Шпиц. –

+0

@ RafaelCosta Обновлено. –

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