自动化测试——执行javaScript脚本

news2024/9/21 12:46:38

在这里插入图片描述


文章目录

  • 一、点击元素(对应的click())
  • 二、input标签对应的值(对应的send_keys())
    • 修改时间控件的属性值:
  • 三、元素的文本属性
  • 四、js脚本滚动操作

一、点击元素(对应的click())

使用场景:当使用显性等待不能解决问题时

在这里插入图片描述

代码中实现点击元素操作:driver.execute_script(“document.querySelector(‘.c-icon.icon-title_35rjV’).click()”)

import time

from selenium import webdriver
from selenium.webdriver.common.by import By

#todo 点击元素
def test_baidu_js():
    driver = webdriver.Chrome()
    driver.implicitly_wait(3)
    driver.get('https://www.baidu.com/')
    driver.execute_script("document.querySelector('#kw').value='20230226'")
    driver.execute_script("document.querySelector('#su').click()")
    time.sleep(1)
    driver.execute_script("document.querySelector('.c-icon.icon-title_35rjV').click()")

二、input标签对应的值(对应的send_keys())

document.querySelector(‘#kw’).value:获取文本中的文字
在这里插入图片描述
document.querySelector(‘#kw’).value=‘java’:修改文本框的文字
在这里插入图片描述

修改时间控件的属性值:

在这里插入图片描述

代码中实现修改文本框默认值操作:driver.execute_script(‘document.querySelector(“#train_date”).value=“2024-01-01”’)

获取时间控件的信息,并返回出来date_data=driver.execute_script(‘return document.querySelector(“#train_date”).value’)

python执行js脚本

def test_12306_js():
    driver = webdriver.Chrome()
    driver.implicitly_wait(3)
    driver.get('https://www.12306.cn/index/')
    #修改时间控件的信息
    driver.execute_script('document.querySelector("#train_date").value="2024-01-01"')
    #获取时间控件的信息,并返回出来
    date_data=driver.execute_script('return document.querySelector("#train_date").value')

    print(f'获取的时间控件信息为:{date_data}')

三、元素的文本属性

在这里插入图片描述

修改元素的文本信息,并且验证是否修改通过
driver.execute_script(“document.querySelector(‘.mnav.c-font-normal.c-color-t’).innerText=‘今日新闻’”)

def test_baidu_js1():
    driver = webdriver.Chrome()
    driver.implicitly_wait(3)
    driver.get('https://www.baidu.com/')
    driver.execute_script("document.querySelector('.mnav.c-font-normal.c-color-t').innerText='今日新闻'")
    text_data=driver.execute_script("return document.querySelector('.mnav.c-font-normal.c-color-t').innerText")
    print(text_data)

四、js脚本滚动操作

滚动到页面底部:
document.documentElement.scrollTop=10000

def test_baidu_js2():
    driver = webdriver.Chrome()
    driver.implicitly_wait(3)
    driver.get('https://www.baidu.com/')
    driver.execute_script("document.querySelector('#kw').value='python'")
    driver.execute_script("document.querySelector('#su').click()")
    time.sleep(1)
    driver.execute_script("document.documentElement.scrollTop=10000")

滚动到指定位置
document.querySelector(“css表达式”).scrollIntoView()

def test_baidu_js3():
    driver = webdriver.Chrome()
    driver.implicitly_wait(3)
    driver.get('https://www.baidu.com/')
    driver.execute_script("document.querySelector('#kw').value='python'")
    driver.execute_script("document.querySelector('#su').click()")
    time.sleep(1)
    driver.execute_script('document.querySelector(".c-title.t.t.tts-title").scrollIntoView()')

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/393305.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[神经网络]DETR目标检测网络

一、概述 相较于传统目标检测,DETR是一种纯端到端的网络。它不再需要NMS(非极大值抑制,用于去除多余的预测框)和生成anchor。 DETR提出了一个新的目标函数(二分图匹配),这个函数可以强制网络输出一个独一无二的预测值&…

【Unity大气渲染】Unity Shader中实现大气散射(半成品)

写在前面 这是之前在做天空盒的时候同步写的分析博客,结果后面写到一半就忘了继续了,这里先贴出当时写的半成品,有小伙伴问我怎么做的,这里只能尽力把之前的半成品先放出来了(写得很乱,勿怪orz&#xff09…

用C语言实现一个任意类型的队列

下面是一个简单的无类型队列的实现&#xff1a; #include <stdio.h> #include <stdlib.h>typedef struct Node {void *data;struct Node *next; } Node;typedef struct Queue {Node *front;Node *rear;int size; } Queue;void enqueue(Queue *queue, void *data);…

[蓝桥杯] 枚举、模拟和排列问题

文章目录 一、连号区间数 1、1 题目描述 1、2 题解关键思路与解答 二、递增三元组 2、1 题目描述 2、2 题解关键思路与解答 三、错误票据 3、1 题目描述 3、2 题解关键思路与解答 四、回文日期 4、1 题目描述 4、2 题解关键思路与解答 五、归并排序 标题&#xff1a;蓝桥杯——…

windows和linux出现timewait过多的解决方法

一、timewait出现在客户端还是服务端以及什么情况下出现 我是做性能测试的。在压测过程中遇到了timewait过多的情况&#xff0c;下面来看一下timewait产生的原因及解决办法&#xff0c;我自己在服务器起了一个很简单的springboot应用来验证自己的猜想及解决办法。 说到产生原…

基于docker部署prometheus

1、prometheus架构 Prometheus Server: 收集指标和存储时间序列数据&#xff0c;并提供查询接口 ClientLibrary:客户端库 Push Gateway: 短期存储指标数据。主要用于临时性的任务 Exporters:采集已有的第三方服务监控指标并暴露 metrics Alertmanager:告警 Web UI :简单的…

VS插件CodeRush全新发布v22.2.4——改进对VS 17.5的支持

CodeRush是一个强大的Visual Studio .NET 插件&#xff0c;它利用整合技术&#xff0c;通过促进开发者和团队效率来提升开发者体验。CodeRush能帮助你以极高的效率创建和维护源代码。Consume-first 申明&#xff0c;强大的模板&#xff0c;智能的选择工具&#xff0c;智能代码分…

【C++升级之路】第九篇:vector

&#x1f31f;hello&#xff0c;各位读者大大们你们好呀&#x1f31f; &#x1f36d;&#x1f36d;系列专栏&#xff1a;【C学习与应用】 ✒️✒️本篇内容&#xff1a;vector的基本概念、vector的使用&#xff08;构造&#xff0c;迭代器&#xff0c;空间增长&#xff0c;增删…

小樽C++ 单章③ 一维数组

目录 一、一维数组认识与使用 1.4 数组的输入与输出 1.5 最大值与最小值的求解 二、一维数组的操作用法 2.1 数组的插入与删除 2.2 数组某个值的查找 2.3多个数组的合并 2.4多个数组的有序合并 三、一维数组的应用 3.1 斐波那契数列 3.2 淘淘摘苹果 3.3 翻纸牌游戏…

RTOS中互斥量的原理以及应用

互斥量的原理 RTOS中的互斥量是一种同步机制&#xff0c;用于保护共享资源&#xff0c;防止多个任务同时访问该资源&#xff0c;从而避免数据竞争和不一致性。 互斥量的原理是通过对共享资源进行加锁和解锁操作来实现的。 在RTOS中&#xff0c;互斥量通常是一个数据结构&…

为什么说要慎用BeanUtils,因为性能真的拉跨

1 背景之前在专栏中讲过“不推荐使用属性拷贝工具”&#xff0c;推荐直接定义转换类和方法使用 IDEA 插件自动填充 get / set 函数。不推荐的主要理由是&#xff1a;有些属性拷贝工具性能有点差有些属性拷贝工具有“BUG”使用属性拷贝工具容易存在一些隐患&#xff08;后面例子…

九龙证券|磷酸亚铁锂是什么?磷酸亚铁锂的特点和性能介绍

磷酸亚铁锂是一种新式锂离子电池电极资料&#xff0c;化学式&#xff1a;LiFePO4&#xff0c;磷酸亚铁锂为近来新开发的锂离子电池电极资料&#xff0c;首要用于动力锂离子电池&#xff0c;作为正极活性物质运用&#xff0c;人们习气也称其为磷酸铁锂。 磷酸亚铁锂的特色和功能…

【计算机网络】随机访问介质访问控制中的ALOHA协议、CSMA协议、CSMA/CD协议和CSMA/CA协议

二、随机访问介质访问控制 信道上的所有用户可随机发送信息 1. 简单ALOHA协议 解决信息发送时的冲突问题。其特点是不监听信道&#xff0c;不按时间槽发送&#xff0c;随机重发。 思想&#xff1a;在超时后&#xff0c;等随机一段时间后再重传 2. 时隙ALOHA协议 时隙ALOH…

送给她最最浪漫的表白(Python代码实现)

目录I 最美的浪漫 II 昨日浪漫的表白III 关于“美”的哲思 IV Python代码实现 I 最美的浪漫 II 昨日浪漫的表白 她问:有一个问题&#xff0c;我只问一遍&#xff0c;为什么是我?我微微一笑答道:笞案很长&#xff0c;我要用一生来回答。我&#xff1a;图书馆旁边的星空真美&…

Linux面试总结

一.常用命令1.目录切换cd / 切换到根目录cd ../ 切换到上级目录cd ~ 切换到home目录2.查看目录ls 列出当前目录下所有的文件ls [路径]ls / 查看根目录 ls -l 相当于 ll 最常用的命令,用了表的方式列出当前目录的内容3.查看当前目录pwd-4.创建一组空文件touch5.显示文件内容cat6…

Maven打包操作

对于企业级项目&#xff0c;无论是进行本地测试&#xff0c;还是测试环境测试以及最终的项目上线&#xff0c;都会涉及项目的打包操作。对于每个环境下的项目打包&#xff0c;对应的项目所需要的配置资源都会有所区别&#xff0c;实现打包的方式有很多种&#xff0c;可以通过an…

【Linux】进程理解与学习(Ⅰ)

环境&#xff1a;centos7.6&#xff0c;腾讯云服务器Linux文章都放在了专栏&#xff1a;【Linux】欢迎支持订阅&#x1f339;相关文章推荐&#xff1a;【Linux】冯.诺依曼体系结构与操作系统进程概念什么是进程&#xff1f;进程是什么&#xff1f;我们打开任务管理器可以看到有…

Flex弹性布局一文通【最全Flex教学】

文章目录一.Flex布局1.1 传统布局和flex布局1.1.1 传统布局1.1.2 flex弹性布局1.2 flex初步体验1.3 布局原理二.常见Flex属性2.1 常见父项属性2.2 flex-direction主轴的方向2.3 justify-content设置主轴上的子元素排列方式2.4 设置子元素是否flex-wrap换行2.5 align-itmes设置侧…

数列的极限

数列的极限的定义&#xff1a; 当正多边形的边数越来越多时&#xff0c;正多边形的面积越来越接近于圆的面积。 这个过程就叫做极限。 数列的形式&#xff1a; 数列的每一个下标对应一个数列元素值。 认识数列 这就是4个数列的表现形式。 当数列的下标无限增长时&#xff0c…

记录--uni-app中安卓包检查更新、新版本下载、下载进度条显示功能实现

这里给大家分享我在网上总结出来的一些知识&#xff0c;希望对大家有所帮助 需求描述 如果想要做一个app的话&#xff0c;可以有很多种选择方案&#xff0c;uni-app是其中的一个性价比高一些(坑多一些)的方案。本文记录一下&#xff0c;uni-app打安卓包以后&#xff0c;需要检查…