Я новичок в форуме и имею некоторый опыт работы с VBA, но не очень.
Я использую Selenium для облегчения взаимодействия с сайтом Chrome с целью автоматизации серии запросов к сайт (веб-встречи Starleaf) с данными в электронной таблице Excel.
Я могу войти в систему и могу переходить от страницы к странице, используя операторы FindElementByID
и FindElementByTag("a").Click
.
У меня есть проблема с навигацией при использовании этого подхода на одной странице. Я пробовал ByID(the first 2 IDs in the code below)
, ByLinkText
, ByClass (portalContent, button, single)
, ByCssSelector
; но ничего не работает. Макрос останавливается в строке кода этой формы:
Set elem = bot.FindElementBy*****("Parameter")
elem.FindElementByTag("a").Click
Код на странице, о которой идет речь:
<div class="portalContent">
<div id="viewConferencesAddDiv" class="buttons single" style="">
<a id="viewConferences_add" href="https://portal.starleaf.com/#page=addUserConference" target="_parent">
<span id="viewConferences_add_text">Schedule meeting</span>
</a>
</div>
Интересно, есть ли id="viewConferences_add"
между тегом 'a'? и проблема может быть в href, но я не уверен, как обойти это.
Альтернативный подход, который я попытался использовать, - это go непосредственно на страницу, которая мне нужна после входа в систему, однако это не похоже на работу. У меня может быть проблема с синтаксисом ???
Вот что я попробовал:
bot.Get "/#page=addUserConference"
bot.Get "https://portal.starleaf.com/#page=addUserConference"
bot.Get "//portal.starleaf.com/#page=addUserConference"
С помощью этого кода впоследствии, чтобы дать время для загрузки страницы:
Do Until InStr(1, bot.Url, "addUserConference") > 0
Application.Wait (DateAdd("s", 1, Now))
DoEvents
Loop
Обновление
Я осмотрелся и обнаружил, что кто-то говорит о переключении iframe. Глядя на страницу в F12, она выглядит так, как будто кнопка «Назначить встречу» может быть в фрейме. Предложение было переключиться на, если, однако, я не знаю, как это сделать. Похоже, что на странице несколько фреймов - так что, думаю, мне нужен идентификатор. Я думаю, что это может быть id = mainPanel_iframe.
HTML тега iframe:
<iframe id="mainPanel_iframe" name="mainPanel_iframe" class="mochaIframe" src="https://portal.starleaf.com/pbx/node-1.live.pr.starleaf.com/portal/#page=users&lang=en_int" marginwidth="0" marginheight="0" frameborder="0" scrolling="auto" style="height: 579px; width: 1543px;"></iframe>