当前位置: 首页 > article >正文

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

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

常用JS代码

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

操作当前页面

获取页面标题

page_title=browser.execute_script('return document.title;')
print(page_title)

获取页面高度

page_height = browser.execute_script("return document.documentElement.scrollHeight;")
print(page_height)

获取窗口大小

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

设置窗口大小

browser.execute_script("window.resizeTo(800, 600);")

滚动到页面底部

browser.execute_script("window.scrollTo(0, document.body.scrollHeight);")

刷新页面

browser.execute_script("window.scrollTo(0, document.body.scrollHeight);")

获取页面当前url

current_url = browser.execute_script("return window.location.href;")
print(current_url)

修改页面Url

browser.execute_script("window.location.href = 'https://www.example.com';")

页面重定向

browser.execute_script("window.location.replace('url');")

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

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)

操作某个元素

点击元素

element=browser.find_element(By.XPATH,'')
browser.execute_script('arguments[0].click()',element)

获取元素的文本

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

获取元素的属性值

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

滚动元素到视口

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

检查元素是否可见

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)

获取元素的尺寸

size = browser.execute_script("return {width: arguments[0].offsetWidth, height: arguments[0].offsetHeight};", element)
print(size['width'], size['height'])


http://www.kler.cn/a/561658.html

相关文章:

  • kubernetes-完美下载
  • el-table
  • 代码随想录算法【Day54】
  • 2025-02-25 学习记录--C/C++-用C语言实现删除字符串中的子串
  • Python学习第十七天之PyTorch保姆级安装
  • 夜莺监控 - 边缘告警引擎架构详解
  • 解锁DeepSeek,未来为语音直播交友软件源码开发搭建注入新活力
  • Vue的项目创建以及项目目录与组合式API
  • linux--多进程开发(5)--进程
  • 大数据与Hadoop综合解析
  • 面试中自己挖的一些坑
  • deepseek sse流式输出
  • 大数据模式下可以同步视图的数据到大数据存储中吗?
  • 【Tourism】Hezhou(1)
  • Java Web开发实战与项目——Spring Boot与Spring Cloud微服务项目实战
  • 总结递推与递归的区别
  • WPS计算机二级•文档的页面设置与打印
  • 实现使用RBF(径向基函数)神经网络模拟二阶电机数学模型中的非线性干扰,以及使用WNN(小波神经网络)预测模型中的非线性函数来抵消迟滞影响的功能
  • IDEA配置JSP环境
  • 特征工程 (Feature Enginering)基础知识1