写点什么

软件测试学习笔记丨 Selenium—执行 javascript 脚本

作者:测试人
  • 2024-10-15
    北京
  • 本文字数:992 字

    阅读完需:约 3 分钟

本文转自测试人社区,原文链接:https://ceshiren.com/t/topic/32546

JavaScript 简介

  • javascript 是一种具有函数优先的轻量级,解释型或即时编译型的编程语言

  • 可以嵌入到 html 页面对浏览器事件做出响应

  • 可以基于 Node.js 技术进行服务器端编程

  • 使用场景:部分场景使用 selenium 原生方法无法解决,例如,修改时间控件,滚动到某个元素,其他场景

JavaScript 使用方式

  • 页面调试 js 脚本

进入 console 调试 js 脚本如果有返回值则会在浏览器返回

  • js 脚本-元素操作

通过 CSS 查找元素:点击元素(对应 click)input 标签对应的值(对应 send_keys)元素的类属性元素的文本属性

// 百度首页:https://www.baidu.com/// 修改属性值document.querySelector(“#kw”).value = “霍格沃兹测试开发学社”// 点击操作document.querySelector(“#su”).click()// 淘宝首页: https://www.taobao.com/// 修改元素的类属性document.querySelector(“#J_SiteNavMytaobao”).className=“site-nav-menu site-nav-mytaobao site-nav-multi-menu J_MultiMenu site-nav-menu-hover”// 测试人首页:https://ceshiren.com/// 获取元素内的文本信息document.querySelector(“#ember63”).innerText
复制代码
  • JS 脚本-滚动操作

页面滚动到底部指定到滚动的位置 document.documentElement.scrollTop=10000document.querySelector(‘css 表达式’).scrollIntoView();

  • Selenium 执行 js

调用执行 js 方法在 js 语句中添加 return: 代码可以获取 js 的执行结果结合 find_element 方法

#示例代码(python)# 直接执行execute_script("js脚本")# 获取js执行结果execute_script("return js脚本")
复制代码
  • js 处理-案例 1-展示下拉框

案例一:通过属性修改展示下拉框打开淘宝首页修改下拉框属性点击悬浮框内的选项

def test_select_down():    driver = webdriver.Chrome()    driver.implicitly_wait(3)  # 打开网址    driver.get("https://www.taobao.com/")    # 修改下拉框属性    sleep(1)    driver.execute_script('document.querySelector("#J_SiteNavMytaobao").'                                'className="site-nav-menu site-nav-mytaobao '                                'site-nav-multi-menu J_MultiMenu '                                'site-nav-menu-hover"')driver.find_element(By.XPATH, "//*[text()='已买到的宝贝']").click()    sleep(5)    driver.quit()
复制代码

软件测试开发免费视频教程分享


发布于: 刚刚阅读数: 5
用户头像

测试人

关注

专注于软件测试开发 2022-08-29 加入

霍格沃兹测试开发学社,测试人社区:https://ceshiren.com/t/topic/22284

评论

发布
暂无评论
软件测试学习笔记丨Selenium—执行javascript脚本_软件测试_测试人_InfoQ写作社区