Python Selenium, переключающий 2 iframe с одинаковым идентификатором, разные src - PullRequest
0 голосов
/ 04 июня 2019

Я пытаюсь переключиться на другой iframe с идентификатором: "ifrBetslipHolder" Есть два iframe с одинаковыми идентификаторами с разными src

Когда я переключаюсь на iframe, меня всегда переключают на первый

если я найду find_elements_by_id ("ifBetslipHolder"), он вернет только один элемент

</span><span class="cIframeHolder" style="width: 355px; height: 433px;"><iframe scrolling="no" allowfullscreen="" class="cIframe" id="ifrBetslipHolder" name="ifrBetslipHolder" src="/fe/manager/blank.htm?bust=0.46149823458289685" style="width: 357px; height: 433px;" frameborder="no"></iframe><div class="winDragSurface" id="drag_winMan_19"></div></span></span><span class="winFrame" id="winMan_20" style="left: 550px; top: 150px; width: 369px; height: 472px; z-index: 57; display: block; visibility: visible;" closemode="1"><div class="winTrans" id="winBack_winMan_20" style=""></div><span class="winHeadbar" style="height: 30px;" id="winHead_0_winMan_20"><span class="winTitles"><span><span class="winTitleActive" panelid="winMan_20" id="winTitle_0_winMan_20">Ticket</span></span>
        </span><span class="winControl" id="winControl_winMan_20"><span class="winConCls" id="winCls_winMan_20" winid="winMan_20" headerbtnid="undefined"></span><span></span></span>
        </span><span class="cIframeHolder" style="width: 355px; height: 433px;"><iframe scrolling="no" allowfullscreen="" class="cIframe" id="ifrBetslipHolder" name="ifrBetslipHolder" src="/fe/manager/blank.htm?bust=0.4631218513461094" style="width: 357px; height: 433px;" frameborder="no"></iframe><div class="winDragSurface" id="drag_winMan_20"></div></span></span>

Надеюсь, что сможете переключиться на второй iframe с идентификатором "ifrBetslipHolder"

Ответы [ 2 ]

0 голосов
/ 04 июня 2019

Идентификатор на странице HTML всегда должен быть уникальным. Однако многие браузеры и драйверы поддерживают выбор дублированных идентификаторов. Вы можете использовать другой метод, например find_element_by_css_selector('#ifrBetslipHolder')[1].

0 голосов
/ 04 июня 2019

Попробуйте приведенную ниже логику.

driver.switch_to.frame(driver.find_element_by_xpath("(//iframe[@id='ifrBetslipHolder'])[2]"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...