|
发表于 2023-5-10 16:45:51
|
显示全部楼层
本楼为最佳答案
我明白你的需求了。在Selenium中,一旦你的浏览器页面刷新或者导航到其他页面,你的Selenium实例依然与浏览器保持连接,所以理论上不需要重新连接。但如果你遇到了问题,可能是因为某些元素或者状态在刷新后已经不再存在。
对于你提到的第一种方法,让我解释一下: driver.switch_to.window(window_name) 这个方法是用来在多个窗口之间进行切换的。在这里, window_name 是你要切换到的窗口的名字。你可以通过 driver.window_handles 来获取当前所有打开的窗口的句柄,然后在这些窗口之间切换。举个例子,如果你想切换到第一个打开的窗口,你可以这样做:
- driver.switch_to.window(driver.window_handles[0])
复制代码
然而,如果你只是在同一个窗口里刷新了页面,你其实不需要进行窗口切换。刷新页面可能会导致一些元素无法找到,这时你需要重新定位这些元素。
如果你的问题是关于重新连接已打开的浏览器,Selenium在设计上没有提供这个功能。Selenium的WebDriver是设计用来控制一个新的浏览器会话的,它并不支持连接到一个已经存在的浏览器会话。如果你关闭了你的Python脚本但浏览器仍然打开,那么你的Selenium会话会丢失,你不能重新连接到那个会话。
如果你的需求是在浏览器刷新后继续操作,你可以在刷新后重新定位你需要的元素并进行操作。你可能需要使用 time.sleep() 或者WebDriverWait来等待页面加载完成。 |
|