Web自动化之Selenium execute_script函数常用JS脚本

在Web自动化测试中,Selenium的execute_script函数是一个非常强大的工具,它允许我们直接在浏览器中执行JavaScript代码。使用时只需将JS代码按照字符串的格式传入即可。

常用JS代码

以下是一些常用的JavaScript代码示例,可以在Selenium的execute_script函数中直接使用:包括操作当前页面和操作某个元素。

操作当前页面

获取页面标题

python 复制代码
page_title=browser.execute_script('return document.title;')
print(page_title)

获取页面高度

python 复制代码
page_height = browser.execute_script("return document.documentElement.scrollHeight;")
print(page_height)

获取窗口大小

python 复制代码
window_size = browser.execute_script("return {width: window.innerWidth, height: window.innerHeight};")
print(window_size['width'], window_size['height'])

设置窗口大小

python 复制代码
browser.execute_script("window.resizeTo(800, 600);")

滚动到页面底部

python 复制代码
browser.execute_script("window.scrollTo(0, document.body.scrollHeight);")

刷新页面

python 复制代码
browser.execute_script("window.scrollTo(0, document.body.scrollHeight);")

获取页面当前url

python 复制代码
current_url = browser.execute_script("return window.location.href;")
print(current_url)

修改页面Url

python 复制代码
browser.execute_script("window.location.href = 'https://www.example.com';")

页面重定向

python 复制代码
browser.execute_script("window.location.replace('url');")

获取当前页面内所有herf链接

python 复制代码
js_script = """
var links = document.querySelectorAll('a');
var hrefs = [];
links.forEach(function(link) {
    var href = link.getAttribute('href');
    if (href) {
        hrefs.push(href);
    }
});
return hrefs;
"""

all_links = driver.execute_script(js_script)
# 打印所有获取到的链接
for link in all_links:
    print(link)

操作某个元素

点击元素

python 复制代码
element=browser.find_element(By.XPATH,'')
browser.execute_script('arguments[0].click()',element)

获取元素的文本

python 复制代码
element=browser.find_element(By.XPATH,'')
text=browser.execute_script('return arguments[0].textContent;',element)
print(text)

获取元素的属性值

python 复制代码
element=browser.find_element(By.XPATH,'')
attribute=browser.execute_script('return arguments[0].getAttribute('href');',element)
print(attribute)

滚动元素到视口

python 复制代码
element=browser.find_element(By.XPATH,'')
browser.execute_script(arguments[0].scrollIntoView({behavior: 'smooth', block: 'center'});",element)

检查元素是否可见

python 复制代码
element = browser.find_element(By.ID, 'dynamic-element')
is_visible = browser.execute_script("return arguments[0].offsetWidth > 0 && arguments[0].offsetHeight > 0;", element)
print(is_visible)

获取元素的尺寸

python 复制代码
size = browser.execute_script("return {width: arguments[0].offsetWidth, height: arguments[0].offsetHeight};", element)
print(size['width'], size['height'])
相关推荐
2501_9153738813 分钟前
Electron 入门指南
前端·javascript·electron
沉到海底去吧Go32 分钟前
【图片识别改名】批量读取图片区域文字识别后批量改名,基于Python和腾讯云的实现方案
开发语言·python·腾讯云
百锦再1 小时前
Python深度挖掘:openpyxl和pandas的使用详细
java·开发语言·python·框架·pandas·压力测试·idea
Jackilina_Stone1 小时前
【论文阅读/复现】RT-DETR的网络结构/训练/推理/验证/导出模型
论文阅读·python·目标检测·rt-detr
编程自留地1 小时前
第10次:电商项目配置开发环境
python·django·商城
吃瓜群众i1 小时前
兼容IE8浏览器的8个实用知识点
前端·javascript
IT技术员1 小时前
【Java学习】动态代理有哪些形式?
java·python·学习
q_q王1 小时前
本地知识库工具FASTGPT的安装与搭建
python·大模型·llm·知识库·fastgpt
lanboAI1 小时前
基于卷积神经网络的蔬菜水果识别系统,resnet50,mobilenet模型【pytorch框架+python源码】
pytorch·python·cnn
像风一样自由20202 小时前
浏览器自动化工具:Selenium 和 Playwright
运维·selenium·自动化