selenium 调用JavaScript代码

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()