oldtroy 2022-07-21 16:30 采纳率: 84.6%
浏览 38
已结题

Selenium switch_to.frame 等待问题

我需要用Selenium读取网站的数据,考虑加载速度的原因,我设置了等待implicitly_wait。这个网站含有Frame,需要切换frame才能读取数据。结果,我发现即使网页加载完成,switch_to.frame 还是会等待30秒才会完成,我把等待时间改了15秒,结果switch_to.frame等待了15秒完成。 我不明白为什么会这样。求解答。

from selenium import webdriver
import datetime

wb = webdriver.Edge()
wb.get('xxxxxx')
wb.implicitly_wait(30)
my_time = datetime.datetime.now()
wb.switch_to.frame(1)
print(datetime.datetime.now() - my_time )
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Test</title>
</head>
<frameset rows="40,73,*">
    <frame noresize=""  name="header" src="xxxxxxxxxx.jsp">
        #document
            <html>
                <head>
                    <title>Enquiry</title>
                </head>
                <body class="Home" marginwidth="0" marginheight="0" topmargin="0">
                    <input type="button" class="submit" value="Go" onclick="loadPage()">
                </body>
            </html>
    </frame>
</frameset>
</html>
  • 写回答

1条回答 默认 最新

  • 快乐小土狗 2022-07-21 16:39
    关注

    implicitly_wait隐式等待呀,你整个页面加载完了就不在等待了呀,要不你试试显式等待,只等待你需要的元素

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 7月30日
  • 已采纳回答 7月22日
  • 修改了问题 7月21日
  • 修改了问题 7月21日
  • 展开全部