一、JavaScript操作页面元素
WebDriver对于部分浏览器上的控件并不是直接支持的,比如浏览器右侧、下侧滚动条,显示框等。此时需要借助JavaScript来实现
Webdriver提供了两个方法来执行JavaScript代码
webdriver方法名 | 描述 |
---|---|
execute_script | 同步执行,时间较短。webdriver会等待同步执行结果,然后继续执行后续代码 |
execute_async_script | 异步执行,时间较长。webdriver不会等待异步执行结果,但是会继续执行后续代码 |
js方法名 | 描述 |
- | - |
window.scrollTo(100,600) | 使滚动条滑动到指定位置 |
window.scrollTo(0,document.body.scrollheight) | 使滚动条滑动至页面底部 |
from selenium import webdriver
# 初始化webdriver,并打开马蜂窝首页
driver=webdriver.Chrome()
driver.maximize_window()
driver.get("https://www.mafengwo.cn")
#通过id找到马蜂窝首页搜索框,输入北京
inputJs = 'document.getElementById("_j_index_search_input_all").value="北京"'
#javascript代码
driver.execute_script(inputJs)
# 让下拉框滑动到指定位置
windowJs = "window.scrollTo(100,600)"
#使滚动条滑动到底部
# windowJs = "window.scrollTo(0,document.body.scrollheight)"
driver.execute_script(windowJs)
二、jQuery操作页面元素
jQuery是JavaScript到一个类库,是在JavaScript基础上的深度封装。使用更加简单。
jQuery选择器参考:https://www.runoob.com/jquery/jquery-selectors.html
from selenium import webdriver
driver = webdriver.Chrome();
driver.maximize_window()
driver.get("https://www.mafengwo.cn")
inputJQ = "$('#_j_index_search_input_all').val('北京')"
driver.execute_script(inputJQ)
clickJQ = "$('#_j_index_search_btn_all').click()"
driver.execute_script(clickJQ)
driver.quit()
Selenium 3+Python 3 自动化测试项目实战 从菜鸟到高手 田春成 李靖 /著