Python UI自动化-Selenium【JS操作】

这篇具有很好参考价值的文章主要介绍了Python UI自动化-Selenium【JS操作】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

在selenium定位元素操作中,如果有些元素定位不到,或者页面元素的属性有需要修改,可以通过js操作来对html页面元素获取、元素属性获取、元素的属性进行修改


一、JS执行方式

selenium当中执行js代码有两种方式:
1、driver.execute_script(js代码(语句用;隔开),传入js代码当中的值)

#页面滚动到可滑动最大高度
driver.execute_script("window.scrollTo(0,document.body.scrollHeight)")

2、使用selenium找到的元素对象,可以传递给js代码
js - argument 对象:js代码中使用arguments来接收参数,可以理解是个列表,通过下标取值,从0开始,根据参数的位置

#js代码中使用arguments来接收参数,可以理解是个列表,通过下标取值,从0开始,根据参数的位置
ele_input = driver.find_element(By.ID,"kw")
ele_button = driver.find_element(By.ID,"su")

js_code = 'arguments[0].value="";' \
          'arguments[1].click()'
driver.execute_script(js_code,ele_input,ele_button)

二、常用方法举例

1、js操作滚动条

  1. 设置滚动条位置,距离顶部xxx像素
driver.execute_script("document.documenElement.scrollTop=xx")
  1. 滑动到指定坐标位置
  • 1、X轴:网页左上角,从左到右越来越大
  • 2、Y轴:网页左上角,从上到下越来越大
#滑动到页面顶部
driver.execute_script("window.scrollTo(0,0)")
  1. 基于当前位置滑动指定像素距离
driver.execute_script("window.scrollBy(0,0)")
  1. 获取滚动条可滑动最大宽度
driver.execute_script("document.body.scrollWidth")
  1. 获取滚动条可滑动最大高度
driver.execute_script("document.body.scrollHeight")
  1. 获取当前滚动距离最上方的距离(垂直方向)
driver.execute_script("document.documentElement.scrollTop")
  1. 获取当前滚动距离最左侧的距离(水平方向)
driver.execute_script("document.documentElement.scrollLeft")

2、页面需要手动将元素滚到可见区域

两种方式

  1. 使用webelement自带的滚动到可见区域的属性
ele.location_once_scrolled_into_view #元素与窗口顶端对齐
  1. js的方法
    arguments[0].scrollIntoView(true) #元素与窗口顶端对齐
    arguments[0].scrollIntoView(false) #元素与窗口底端对齐
#与窗口顶端对齐,只要元素在页面就可以用,不管元素所属哪个滚动条
driver.execute_script("arguments[0].scrollIntoView(true)",elem)
#与窗口底部对齐,只要元素在页面就可以用,不管元素所属哪个滚动条
driver.execute_script("arguments[0].scrollIntoView(false)",elem)

参数说明
scrollIntoView是一个与页面(容器)滚动相关的API
element.scrollIntoView() 参数默认为true
参数为true:调用该函数,页面发送滚动,使element的顶部与视图(容器)顶部对齐
参数为false:使element的底部与视图(容器)底部对齐

3、js点击

driver.execute_script("arguments[0].click();",element)

4、js修改value属性值

driver.execute_script("arguments[0].value = arguments[1].value",ele1,value)

扩展

如果鼠标从页面上某元素移开,弹出的元素内容就整个消失了,无法查看其对应的HTML来定位元素,可使用f12-控制台中冻结弹窗

//表示在 5000毫秒后,执行debugger命令。执行该命令会浏览器会进入debug状态。
//debug状态有个特性,界面被冻住,不管我们怎么点击界面都不会触发事件。
setTimeout(function(){debugger},5000)

注意

接收js执行之后的返回值,js代码中要写return文章来源地址https://www.toymoban.com/news/detail-574366.html

driver.execute_script("return document.getElementById('Input').value")

到了这里,关于Python UI自动化-Selenium【JS操作】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • python+selenium实现UI自动化(一)

    python+selenium实现UI自动化(一)

    selenium官方网站 selenium ide 录制工具。 火狐/google/edge插件 selenium webdriver   结合代码来编写自动化用例。提供很多在浏览器上的操作的api,本文主要记录此项的学习过程 selenium grid   分布式。火狐/google/edge上同时运行。把所有用例拆分到多设备上运行,运行效率更高,更快。

    2023年04月24日
    浏览(12)
  • Python Selenium搭建UI自动化测试框架

    自动化测试是软件测试中非常重要的一部分,可以提高测试效率和测试覆盖率。在UI自动化测试中,Selenium是非常流行的工具。本文将介绍如何使用Python和Selenium搭建UI自动化测试框架。 在开始搭建UI自动化测试框架之前,需要先安装Python和Selenium。可以从Python官网下载Python安装

    2023年04月27日
    浏览(13)
  • Python Selenium UI自动化测试_python 自动化ui测试,Kotlin可能带来的一个深坑

    Python Selenium UI自动化测试_python 自动化ui测试,Kotlin可能带来的一个深坑

    :层级选取,如:#formspaninput 举例:div.entry-sider-panelsection.entry-sider-panel__bddivdiv:nth-child(1) 3.3 元素操作 3.3.1 输入内容 send_keys() 3.3.2 点击元素 click() 3.3.3 清空元素文本内容 clear() 3.3.4 获取元素文本 text 返回的是字符串 3.3.5 获取元素尺寸 size 返回的是字典 3.3.6 获取元素的属性值

    2024年04月25日
    浏览(23)
  • 基于Selenium和python的UI自动化测试方案

    基于Selenium和python的UI自动化测试方案

    对于比较复杂的系统,每次有小的迭代测试同学不可能会把所有的流程验证一遍,如果开发无意改动影响了某些流程而测试又没测试到,就可能会出现生产问题,因此很有必要通过自动化的测试去确保系统的稳定性。自动化测试可以选择接口自动化测试和UI自动化测试,从复

    2024年02月04日
    浏览(10)
  • UI自动化环境的搭建(python+pycharm+selenium+chrome)

    UI自动化环境的搭建(python+pycharm+selenium+chrome)

    最近在做一些UI自动化的项目,为此从环境搭建来从0到1,希望能够帮助到你,同时也是自我的梳理。将按照如下进行开展: 1、python的下载、安装,python环境变量的配置。 2、pycharm开发工具的下载安装。 3、selenium的安装。 4、chrome的选择。 一、python的下载。 1、去python官网:

    2024年02月13日
    浏览(18)
  • webUI自动化之基本框架搭建(python + selenium + unittest)_python ui自动框架

    webUI自动化之基本框架搭建(python + selenium + unittest)_python ui自动框架

    3 from selenium.webdriver.common.by import By 4 5 driver = webdriver.Chrome() 6 driver.get(r’https://xxx’) # 打开浏览器并访问该链接,这里的链接不便展示哈 7 driver.maximize_window() 8 9 # 定位元素并操作 10 driver.find_element(By.NAME, ‘username’).send_keys(‘luoyang’) 11 driver.find_element(By.NAME, ‘password’).send

    2024年04月17日
    浏览(11)
  • Python selenium自动化操作Chrome浏览器

    Python selenium自动化操作Chrome浏览器

    ​ ​ 活动地址:CSDN21天学习挑战赛 Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持目前比较主流的浏览器。它也实现了诸多自动化功能,比如软件自动化测试,检测软件与浏览器兼容性,自动录制、生成不同语言

    2024年02月02日
    浏览(40)
  • 【基础】Python+Selenium自动化测试之键盘、鼠标操作

    目录 鼠标操作 导包方法 使用语法 鼠标常用操作 键盘操作 导包方法 使用语法 键盘常用操作 鼠标操作 模拟用户在页面上用鼠标进行的操作 导包方法 使用语法 使用 ActionChains 需要在鼠标操作后,使用 .perform() 提交鼠标操作 链式编程 分布式编程 鼠标常用操作 键盘操作 模拟

    2024年04月28日
    浏览(11)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包