JavaScript(以后简称JS)是一种脚本语言,它在客户端上运行,即在浏览器上运行。
滚动条、时间控件等,借助JavaScript来完成。
WebDriver提供了一个内置方法来操作JavaScript,代码如下:
driver.execute_script(self,script,args)
可以通过两种方式在浏览器中执行JavaScript。
1.在文档根级别执行JavaScript
在文档根级别下,使用JavaScript提供的方法捕获想要的元素,然后声明一些操作并使用WebDriver执行此JavaScript。比如:
JSScript = "document.getElementsByName('input')[1].click();"
driver.execute_script(JSScript)
2.在元素级别执行JavaScript
在元素级别下,使用WebDriver捕获想要使用的元素,然后使用JavaScript声明一些操作,并通过将Web元素作为参数传递给JavaScript来使用WebDriver执行此JavaScript。例如:
BtnName = driver.find_element_by_xpath("//input[@name=' go']")
driver.execute_script("arguments[0].click();", BtnName)
当有多个JS操作时,如下代码:
from selenium import webdriver
from time import sleep
driver = webdriver.Chrome()
driver.get("https://cn.bing.com/")
SearchName = driver.find_element_by_xpath("//input[@name='q']")
BtnName = driver.find_element_by_xpath("//input[@name='go']")
driver.execute_script("arguments[0].value='bella'; arguments[1].click(); ",SearchName,BtnName)
sleep(3)
driver.quit()
操作滚动条,代码如下:
import time
from seleniumimport webdriver
driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
driver.find_element_by_id("kw").send_keys("selenium")
driver.find_element_by_id("su").click()
#通过js设置浏览器窗口的滚动条位置
js ="window.scrollTo(200,650);"
time.sleep(5)
driver.execute_script(js)
driver.quit()
网友评论