调到js脚本是经常要用到的,比如某元素不可见,可以用js去改变属性;用js去强行点击元素;用js去操作某些控件等等。用途还是比较广的,建议掌握。
方法是:execute_script
看个操作浏览器位子的例子:
from selenium import webdriver
from time import sleep
driver = webdriver.Firefox()
driver.get("http://www.baidu.com")
driver.set_window_size(600,600)
driver.find_element_by_id("kw").send_keys("lalala")
driver.find_element_by_id("su").click()
#通过JavaScript设置浏览器窗口的滚动位子
js = "window.scrollTo(100,450);"
driver.execute_script(js)
sleep(3)
driver.quit()
'''
window.scrollTo(水平位置,垂直位置);
水平位置是指水平的左间距;
垂直位置是指垂直的上边距;'''
再看一个再文本框里输入内容的例子
首先是html,文件名是文本框19:
<!DOCTYPE HTML>
<html lang="en">
<head>
<meta charset="utf-8">
<title>文本框 TEST</title>
</head>
<body>
<h3>请输入内容:</h3>
<form action="" method="get" name="1">
<textarea id= "id" name="suggest" cols="50" rows="10"></textarea>
<br>
<input type="submit" id="3" value="提交">
</form>
</body>
</html>
然后看代码:
from selenium import webdriver
import time,os
driver = webdriver.Firefox()
file_path = 'file:///' + os.path.abspath("文本框19.html")
driver.get(file_path)
text = "随便输入什么东西"
#将text与JavaScript代码通过“+”拼接,这样是使输入的内容变得可以自定义
js = "var sum=document.getElementById('id');sum.value='" + text + "';"
driver.execute_script(js)
time.sleep(3)
driver.quit()