七、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 官网Selenium WebDriver官网webdriver实用指南python版本 WebD...
    顾顾314阅读 47,067评论 0 34
  • selenium用法详解 selenium主要是用来做自动化测试,支持多种浏览器,爬虫中主要用来解决JavaScr...
    陳_CHEN_陈阅读 3,954评论 1 5
  • selenium主要是用来做自动化测试,支持多种浏览器,爬虫中主要用来解决JavaScript渲染问题。 模拟浏览...
    拾柒丶_8257阅读 2,198评论 0 2
  • 现状 好久好久没有更新博客了,应该有一个月了吧,这段时间内,好忙,公司的业务在上涨期,但是却把下面的一个小朋友砍掉...
    jb2阅读 1,326评论 0 2
  • 一个渴求知识的人想读书,一个疲倦的人想有一本书。 一味读下去,等于没读过 阅读一本书与理解书中的含...
    若晓沐阅读 639评论 0 9