首页 > 解决方案 > 使用 IE11 Python Selenium 处理帧

问题描述

我想切换到的 iframe 有代码:

<iframe name="AAA" width="100%" height="100" id="BBB" src="/CCC/blank.html" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="height: 399px;" allowtransparency="true" onload="this.height=100;resize();"></iframe>

我在“逐个单元”模式下运行,所以我相信“等待”不是问题。我已经加载了页面。然后我在单元格中运行代码。

我已经尝试了所有这些,但都没有奏效。

driver.switch_to.frame(0)
driver.switch_to.frame(1)

driver.switch_to.frame(driver.find_element_by_xpath("//iframe[@id='BBB']"))
driver.switch_to.frame(driver.find_element_by_id("BBB"))
driver.switch_to.frame(driver.find_element_by_name("AAA"))

driver.switch_to.frame('AAA')
driver.switch_to.frame('BBB')

我所做的是使用 Chrome 检查元素并返回到 IE11。我得到了框架内元素的 RelXPath 和 AbsXPath。但是,我无法使用 IE11 找到该文件。我相信这是 IE11 使用框架/iframe 的问题。我使用 IE11 构建代码的原因是,当我不使用办公网络时,我只能使用 IE11 访问数据库。

都给了我 NoSuchElementException 我正在使用 Jupyter Notebook 和 IE11。

以下是我想在框架内获取的表格内容:

<table width="100%" border="0" cellspacing="0" cellpadding="0">
                                        <tbody><tr align="center">
                                            <td style="background: rgb(255, 255, 255); border-width: 0px 2px 2px; border-style: solid; border-color: rgb(203, 203, 196); border-image: none; padding-left: 18px;" colspan="2">
                                                <table width="100%" align="left" border="0" cellspacing="1" cellpadding="4">
                                                <tbody><tr align="left" valign="top">
                                                    <td width="17%" class="fontBold">
                                                        Policy Number
                                                    </td>
                                                    <td width="20%">
                                                        1710706
                                                    </td>
                                                    <td>&nbsp;</td>
                                                    <td width="23%" class="fontBold">
                                                        Request Received Date
                                                    </td>
                                                    <td width="20%">
                                                        Jul 28, 2002
                                                    </td>
                                                    <td width="20%" align="center" valign="middle" rowspan="3">
                                                        <a onclick="submitForm('POS1710450285'); return false;" href="javascript:void%200">
                                                            <img width="32" height="32" title="Form/Correspondence" src="/iAES/images/policy/aaa.gif" border="0"><br>
                                                            POS&nbsp;Form / Correspondence
                                                        </a>
                                                    </td>
                                                </tr>


                                                    <tr align="left" valign="top">
                                                        <td class="fontBold">
                                                            Change Type
                                                        </td>
                                                        <td class="SmallFontStyle" colspan="4">
                                                            Others Request
                                                        </td>
                                                    </tr>

                                                </tbody></table>
                                            </td>
                                        </tr>
                                    </tbody></table>

我只想获取表格内的文本。最直接的方法是切换到相关的 iframe。我应该通过获取页​​面中所有 td 的文本并在“Policy Number”之后获取任何文本来解决问题<td class="SmallFontStyle" colspan="4">吗?

标签: pythonselenium

解决方案


推荐阅读