Я пытаюсь выбрать фрейм mainFrame.
Источник страницы:
<frameset rows="89,*" frameborder="NO" border="0" framespacing="0">
<frame name="topFrame" scrolling="NO" noresize src="inc-webpage/b-topnav.asp">
<frameset rows="*,20" frameborder="NO" border="0" framespacing="0">
<frameset cols="175,*" frameborder="NO" border="0" framespacing="0">
<frame name="leftFrame" scrolling="AUTO" noresize src="inc-webpage/b-sidenav-3.asp">
<frame name="mainFrame" src="b-default.asp">
</frameset>
<frame name="bottomFrame" scrolling="NO" noresize src="inc-webpage/b-footer.asp">
</frameset>
</frameset>
<noframes>
Элемент, который я хочу выбрать, находится в mainFrame. Поэтому мой код:
time.sleep(5)
driver.switch_to.frame("mainFrame");
driver.find_element_by_xpath("//a[contains(text(),'I Agree')]").click()
да. time.sleep () не идеален, поэтому я пока использую его.
Вот HTML-код элемента, который я хочу выбрать в mainFrame:
<input type="button" value="I Agree"
class="btn" onmouseover="blueBtnOver(this)" onmouseout="blueBtnOut(this)"
onclick="javascript:location.href='b-3c-pLessonBooking.asp?limit=pl'" style="background: rgb(0, 102, 204);">
В настоящее время появляется эта ошибка:
NoSuchFrameException (frame_reference) selenium.common.exceptions.NoSuchFrameException: Сообщение: mainFrame
Я абсолютный новичок. driver.find_element_by_xpath
, вероятно, ошибается
Также почему на некоторых веб-сайтах используются фреймы // наборы фреймов, в то время как другие используют фреймы, а некоторые не используют ни того, ни другого?
I Agree
находится за пределами отправленного вами фрейма. Вам нужно проверить DOM и родительский элемент этой кнопки, есть ли там какой-либо фрейм ?? это должно быть похоже на<frame>#document <html>button element</html></frame>
- person KunduK   schedule 25.03.2021