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

 

posted @ 2020-02-15 22:02  gupanpan  阅读(85)  评论(0)    收藏  举报