i = fox.execute_script(js_ih)
o = fox.execute_script(js_iw)
#也可以写成
i = fox.execute_script(js_ih,js_iw)
print(i)
print(f"内高是:{i},内宽是:{o}")
外宽,外高
js_oh = ‘return window.outerHeight’
js_ow = ‘return window.outerWidth’
j = fox.execute_script(js_oh)
s = fox.execute_script(js_ow)
print(f"外高是:{j},外宽是:{s}")
fox.quit()
看到这是不是诧异,JS代码写在python中还有有点复杂程度的或者说是有点麻烦的。如果你想获取宽高,你必须要加return不然是没有返回值的,并且没个JS语句你想执行的话都必须fox.execute_script()带上这么一个执行语句,不然写了跟没写一个样。引号内的代码都需要靠纯手写,所以考验键盘能力的时候到了。
操作窗口
-
window.open(url) - 打开新窗口,并打开指定的url
-
window.close() - 关闭当前窗口
-
selenium执行js语句 -fox.execute_script(js)
from selenium import webdriver
fox = webdriver.Firefox()
fox.implicitly_wait(5)
fox.get(‘https://baidu.com’)
打开新窗口
js = “window.open(‘https://www.csdn.net/’)”
fox.execute_script(js)
关闭新窗口
js_c = ‘window.close()’
fox.execute_script(js_c)
fox.quit()
Location对象
location属性
-
window.location.href 返回当前页面的 href (URL)
-
window.location.hostname 返回 web 主机的域名
-
window.location.pathname 返回当前页面的路径或文件名
-
window.location.protocol 返回使用的 web 协议(http: 或 https:)
这里的主机域名可能获取不到,还有就是协议。这里只做了解即可。
from selenium import webdriver
fox = webdriver.Firefox()