selenium 调用JavaScript代码
调用JavaScript方法有两种:
execute_script():
方法解释:是同步方法,用它执行js代码会阻塞主线程执行,直到js代码执行完毕。
execute_script()方法如果有返回值,会有以下几种情况:
- 返回一个页面元素(document element),这个方法就会返回衣蛾WebElement
- 返回浮点数数字,这个方法就返回一个double类型的数字
- 返回非浮点数字,方法返回long类型数字
- 返回blloean类型,方法返回Boolean类型
- 返回一个数组,方法发挥一个List类型
- 其他情况,返回一个字符串
execute_async_script():
方法解释:是异步方法,它不会阻塞主线程执行
实例:
#调用JavaScript代码
#coding utf-8
from selenium import webdriver
from time import sleep
#访问百度
driver = webdriver.Firefox()
driver.get("http://www.baidu.com")
#设置浏览器窗口大下
driver.set_window_size(500,800)
#搜索
driver.find_element_by_id('kw').send_keys('python selenium')
driver.find_element_by_id('su').click()
sleep(2)
#通过javascript设置浏览器窗口的滚动条位置
js = "window.scrollTo(100,450);"
driver.execute_script(js) #执行JavaScript代码
#driver.execute_async_script()
sleep(2)
driver.quit()