1.浏览器滚动条的拖动,不能依靠WebDriver提供的API来实现,用于调整浏览器滚动条位置的JavaScript代码如下:
1 window.scrollTo(0,450);
window.scrollTo()方法用于设置浏览器窗口滚动条的水平位置和垂直位置,第一个参数表示水平左边距,第二个参数表示垂直上边距。相应的python代码如下:
1 from selenium import webdriver 2 from time import sleep 3 driver = webdriver.Firefox() 4 driver.set_window_size(800, 600) 5 driver.get("http://baidu.com") 6 driver.find_element_by_id("kw").send_keys("selenium") 7 driver.find_element_by_id("su").click() 8 sleep(2) 9 # 通过JavaScript设置浏览器窗口的滚动条位置 10 js = "window.scrollTo(100,450);" 11 driver.execute_script(js) 12 sleep(5) 13 driver.quit()
运行之后的结果展示:
当然,JavaScript的作用不仅仅体现在浏览器滚动条的操作上,还可以在页面中的textarea文本框中输入内容。文本框的HTML代码:
1 <textarea id="id" style=" 98%" cols="50" rows="5" class="textarea"></textarea>
相应的python代码:
1 text = "input text" 2 js = "document.getElementById('id').value='" + text + "';" 3 driver.execute_script(js)
首先定义输入的内容text,然后将text与JavaScript代码通过“+”进行拼接,这样做的目的是为了方便自定义输入内容。
2.处理HTML5视频播放
IE9+、Firefox、Opera、Chrome都支持HTML5定义的<video>新元素,下面例子简单自动播放了一段<video>视频:
1 from selenium import webdriver 2 from time import sleep 3 driver = webdriver.Chrome() 4 driver.set_window_size(800, 600) 5 6 driver.get("http://videojs.com") 7 sleep(5) 8 video = driver.find_element_by_id("preview-player_html5_api") 9 10 # 返回播放文件地址 11 url = driver.execute_script("return arguments[0].currentSrc;", video) 12 print(url) 13 14 # 播放视频 15 print("start") 16 driver.execute_script("arguments[0].play", video) 17 18 # 播放15s 19 sleep(15) 20 21 # 暂停视频 22 print("stop") 23 driver.execute_script("arguments[0].pause()", video) 24 sleep(5) 25 driver.quit()
JavaScript有个内置对象——arguments,包含了函数调用的参数数组,[0]表示取对象的第一个值,currentSrc方法返回当前音视频的URL,若未设置,则返回空字符串。load()、play()、pause()控制视频的加载、播放和暂停。