七、Selenium常用方法:Js操作页面元素

一、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 自动化测试项目实战 从菜鸟到高手 田春成 李靖 /著

你可能感兴趣的:(七、Selenium常用方法:Js操作页面元素)