Я пытаюсь нажать эту кнопку через веб-драйвер Selenium, но что бы я ни пытался, он говорит, что не может найти элемент.
<a class = "button" href = "#" id = "enrollForm">ENROLL NOW</a>
Я пытался
driver.FindElement(By.XPath("//*[@id='enrollForm']")).Click();
Обновлять:
Это весь фрагмент. Я хочу нажать на кнопку «Зарегистрироваться сейчас»:
<div class = "buttonContainerLanding">
<div class = "buttonDiv">
<a class = "button" href = "#" id = "enrollForm">ENROLL NOW</a>
</div>
<div class = "buttonDiv">
<!-- <b class = "buttonTitle">Need to Activate Your Card?</b> -->
<a class = "button" href = "#" id = "activate">ACTIVATE CARD</a>
</div>
<div class = "buttonDiv">
<!-- <b class = "buttonTitle">Need to Activate Your Card?</b> -->
<a class = "button" href = "#" id = "replace">REPLACE CARD</a>
</div>
</div>
Я предполагаю, что элемент не виден во время выполнения или значение «id» меняется при каждом обновлении/загрузке новой страницы. Как уже упоминал @nish26, проверьте, присутствует ли элемент в кадре. Попробуйте переключиться на фрейм, а затем попробуйте Также прикрепите HTML-структуру
Не могли бы вы опубликовать стек ошибок?





Чтобы щелкнуть элемент с текстом ЗАПИСАТЬСЯ СЕЙЧАС, вы можете использовать одно из следующих решений:
Использование LinkText:
driver.FindElement(By.LinkText("ENROLL NOW"));
Использование CssSelector:
driver.FindElement(By.CssSelector("div.buttonContainerLanding div.buttonDiv>a.button#enrollForm"));
Использование XPath:
driver.FindElement(By.XPath("//div[@class='buttonContainerLanding']//div[@class='buttonDiv']/a[@id='enrollForm' and text()='ENROLL NOW']"));
Проверьте, находится ли ваш элемент привязки внутри фрейма... Вам нужно будет сначала переключиться на этот фрейм, прежде чем пытаться найти элемент.