python学习日记:splinter库中的browser.windows操作
在长达2个小时的挣扎与尝试之后,作为小白的我终于搞明白了在python的splinter库中如何操作浏览器窗口。在这里,我把我自己的感悟写下来,希望能给和我一样的小白同学一点帮助QAQ。
这里的Windows操作,只是写了几行代码,为了搞清楚这些操作都有什么用我进行了一遍又一遍的尝试,最后总结出了如下结论。
首先对于前几行
browser.windows # all open windows
browser.windows[0] # the first window
browser.windows[window_name] # the window_name window
browser.windows.current # the current window
这几行其实并不是程序,哪怕你直接敲出来这些,可能也只是浏览器闪到那个窗口之后瞬间跳回来 。
(browser.windows.current 除外,这个会跳转到程序当前浏览的窗口)(是程序浏览的,不是你自己点击的!!!)
这几行,我更愿意将它们称为参数,或者说目标、对象之类的东西。
那么,这行代码
browser.windows.current = browser.windows[3] # set current window to window 3
我们就可以这样理解,我们将 browser.windows.current 这个参数,赋值为了参数 browser.windows[3]。
然后这个
window = browser.windows[0]
这只是程序员为了偷懒少打几个字把 browser.windows[0] 这个参数用一个变量 window 替换了而已
之后的一系列代码,才是真正的指令。
window.is_current # boolean - whether window is current active window
window.is_current = True # set this window to be current window
window.next # the next window
window.prev # the previous window
window.close() # close this window
window.close_others() # close all windows except this one
我们一个个来看
1.window.is_current
这个,用上面的说法,就是 参数.is_current,它用来判断参数是否为程序当前浏览的页面;那么后面加上 = True,就是将参数变为当前程序浏览的页面。(.is_current 的返回值是bool型变量)
2.window.next
参数.next,这个是对参数做一个特别的运算,然后返回一个参数,参数页面的下一个页面 (即browser.windows[x+1]) 。(所以直接打出这个也是没用滴。)
3.window.prev
原理同上,只不过它的返回值是参数的上一个页面。
4.window.close()和window.close_others()
这两个指令有着相同的作用,都会关闭窗口,不过,前者关闭的是参数所指的窗口,后者关闭的是除了参数所指以外的其他窗口。
还有一点我自己的感悟,其实所有的操作都要依赖于 browser.windows.current, 毕竟要处理的浏览页面才是最重要的嘛。
以上就是我对 Browser 中的 windows 的操作的理解,希望能帮上和我一样的小白同学,如果有哪个大佬发现其中有什么不对,希望给我能指正一下。