调用 JavaScript
'''
有些页面的操作不能用 WebDriver 提供的 API 来实现, 如浏览器的滚动条拖动。
这时就需要借助 JavaScript 脚本
WebDriver 提供了 Execute_script() 方法来执行JavaScript 代码。
调整浏览器滚动条位置的 JavaScript 代码如下
<!-- window.scrollTo(左边距, 上边距); -->
window.scrollTo(0, 340)
'''
from selenium import webdriver from time import sleep import os driver = webdriver.Firefox() driver.get("http://www.baidu.com") driver.set_window_size(800, 500) driver.find_element_by_id("kw").send_keys("selenium") driver.find_element_by_id("su").click() js1 = "window.scrollTo(100, 500)" js2 = "window.scrollTo(400, 500)" driver.execute_script(js1) sleep(2) driver.execute_script(js2) sleep(2) driver.quit()
'''
JavaScript 的作用不仅仅体现在浏览器滚动条的操作上,它还可以在页面中的 textarea 文本框中输入内容
文本框 HTML 代码如下:
<textarea id="id" style="width:98%" cols="50" rows="5" class="textarea"></textarea>
虽然可以通过 id 定位元素, 但是不能同构 send_keys() 输入文本信息,
我们可以借助 JavaScript 代码输入文本信息
JavaScript 发送文本的代码
document.getElementById('id').value='" + text + "';
'''
driver = webdriver.Firefox() # 打开本地 html 地址是 file:///…… driver.get('file:///' + os.path.abspath('test.html')) text = " 慢条斯理" js = "document.getElementById('id').value='" + text + "';" driver.execute_script(js) sleep(2) driver.quit()
浙公网安备 33010602011771号